使用tornado和TwitterMixin缺少OAuth请求令牌cookie错误

2024-09-24 22:19:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是tornado和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错误,上面说: 缺少OAuth请求令牌cookie

我不知道它是来自浏览器还是来自twitter的api回调配置。 我看过龙卷风代码,不明白为什么会出现这个错误 出现。在


Tags: 代码selfauthwebgetifondef
3条回答

发生在我身上的原因是回调URL配置指向另一个域。在

请查看位于https://dev.twitter.com/apps/的应用程序的“设置”选项卡,或者如果收到错误的用户是从其他域访问您的站点的。在

请参见:http://groups.google.com/group/python-tornado/browse_thread/thread/55aa42eef42fa1ac

我找到了解决办法!!在

这是因为我的域名系统。在

我没有把重定向www.mydomain.com网站以及我的域名所以有时候cookie是在www上设置的,有时候不是这样,我的服务器没有检查好位置,没有找到cookie,然后给我发送了500个错误。在

可能发生这种情况的两个原因:

  1. 某些用户可能关闭了cookies,在这种情况下,这将不起作用。在
  2. cookie还没有经过身份验证。可能设置了oauth_token参数,但cookie没有设置。不确定为什么会发生这种情况,您必须记录一些日志来了解原因。在

无论如何,这不是一个“错误”,而是用户没有经过身份验证的标志。如果你看到你应该把他们重定向到授权网址,让他们再试一次。在

相关问题 更多 >