【问题标题】:Missing OAuth request token cookie error using tornado and TwitterMixin使用 tornado 和 TwitterMixin 时缺少 OAuth 请求令牌 cookie 错误
【发布时间】:2026-01-28 00:10:01
【问题描述】:

我正在使用 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回调配置。 我查看了龙卷风代码,但我不明白为什么会出现此错误 出现。

【问题讨论】:

    标签: python cookies twitter oauth tornado


    【解决方案1】:

    这可能发生的两个原因:

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

    无论如何,这不是“错误”,而是用户未通过身份验证的标志。也许如果你看到你应该将他们重定向到授权 URL 并让他们再试一次。

    【讨论】:

      【解决方案2】:

      我找到了解决办法!!

      这是由于我的 DNS。

      我没有为 www.mydomain.com 和 mydomain.com 设置重定向,所以有时 cookie 是在 www 中设置的。有时不是,然后我的服务器没有检查好地方,没有找到 cookie,然后向我发送 500 错误。

      【讨论】:

        【解决方案3】:

        发生这种情况的原因是回调 URL 配置指向不同的域。

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

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

        【讨论】: