与Oauth的Django会话 - 无法通过request.session传递变量

时间:2011-11-22 19:53:54

标签: python django session oauth

我正在构建一个应用程序,用于对(FB,LinkedIn等)网站进行API调用。我需要使用OAuth授权我的应用程序代表用户请求数据。我遇到了跨视图存储我的网站界面库(LinkedIn)实例的问题。我使用了request.session - 文件后端。

以下是代码http://pastebin.com/QTgqSr7W

我做错了吗?可以看到在login()中设置的值,但我在token()中看不到相同的值。这有点错吗?传递api实例值的任何解决方法?

谢谢和问候, 阿图。

1 个答案:

答案 0 :(得分:1)

嗯,我认为它是因为你正在保存整个api python实例,我不认为会话支持那种数据,为什么不只是将用户重定向到auth url而不在会话中保存一些东西,然后在回调视图中,你实例化像这样的linkedin.LinkedIn

from django.conf import settings

key = settings.KEY
secret = settings.SECRET
return_url = settings.CALLBACK


# You make the api connection here, so its not tied to any function
api = linkedin.LinkedIn(key, secret, return_url)

def login(request):
    if api.request_token():
        auth_url = api.get_authorize_url()
        return HttpResponseRedirect(auth_url)

#below is the view that will get called with the oauth oken.
def token(request, param):
    #do stuff with the api.