Сеансы Django с Oauth - не могут передавать переменные через request.session - PullRequest
2 голосов
/ 22 ноября 2011

Я создаю приложение для вызовов API на таких веб-сайтах, как (FB, LinkedIn и т. Д.). Мне нужно использовать OAuth, чтобы авторизовать приложение для запроса данных от имени пользователя.Я застрял с проблемой хранения экземпляра библиотеки интерфейса моего веб-сайта (LinkedIn) между представлениями.Я использовал request.session - с файловой частью.

Ниже приведен код http://pastebin.com/QTgqSr7W

Я что-то не так делаю?я могу видеть значение, установленное в login (), но я не могу видеть то же значение в token ().Это неправильно ожидать?Любой обходной путь для передачи значения экземпляра API?

Спасибо и С уважением, Atul.

1 Ответ

1 голос
/ 23 ноября 2011

хм, я думаю, это потому, что вы сохраняете весь экземпляр api python, я не думаю, что сеансы поддерживают такие данные, почему бы просто не перенаправить пользователя на 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...