Ошибка файла cookie маркера запроса OAuth при использовании tornado и TwitterMixin - PullRequest
0 голосов
/ 21 июля 2011

Я использую торнадо и TwitterMixin, и я использую следующий основной код:

class OauthTwitterHandler(BaseHandler, tornado.auth.TwitterMixin): 
    @tornado.web.asynchronous 
    def get(self): 
        if self.get_argument("oauth_token", None): 
            self.get_authenticated_user(self.async_callback(self._on_auth)) 
            return 
        self.authorize_redirect() 
    def _on_auth(self, user): 
        if not user: 
            raise tornado.web.HTTPError(500, "Twitter auth failed") 
        self.write(user) 
        self.finish() 

Для меня это работает очень хорошо, но иногда пользователи моего приложения получают ошибку 500, которая говорит: Отсутствует файл cookie токена запроса OAuth

Я не знаю, исходит ли это от браузера или от конфигурации обратного вызова Twitter API. Я просмотрел код торнадо и не понимаю, почему эта ошибка появляется.

Ответы [ 3 ]

1 голос
/ 25 октября 2011

Я нашел решение !!

Это было связано с моим DNS.

Я не выставлял перенаправление для www.mydomain.com и mydomain.com, поэтому иногда файл cookie устанавливался на www. а иногда нет, тогда мой сервер не проверял хорошее место, не находил cookie и затем отправлял мне ошибку 500.

1 голос
/ 24 июля 2011

Две причины, по которым это может произойти:

  1. У некоторых пользователей могут быть отключены куки, в этом случае это не будет работать.
  2. Печенье не аутентифицировано. Возможно, аргумент oauth_token установлен, но cookie - нет. Не уверен, почему это произойдет, вам нужно войти в систему, чтобы понять, почему.

В любом случае, это не «ошибка», а скорее знак того, что пользователь не аутентифицирован. Может быть, если вы видите, что вам нужно просто перенаправить их на URL авторизации и позволить им повторить попытку.

0 голосов
/ 22 августа 2011

Причина, по которой это происходило со мной, заключается в том, что конфигурация URL обратного вызова указывала на другой домен.

Взгляните на вкладку настроек вашего приложения на https://dev.twitter.com/apps/ или если пользователи, получившие ошибку, получают доступ к вашему сайту из другого домена.

См .: http://groups.google.com/group/python-tornado/browse_thread/thread/55aa42eef42fa1ac

...