我正在开发一个使用 devise 和 omniauth 并遵循 https://github.com/plataformatec/devise/wiki/OmniAuth%3A-Overview 中给出的示例的 Rails 3 应用程序它适用于 Facebook 帐户,但当我尝试添加 Twitter 身份验证时,我收到“401 未经授权”的响应。为了追踪问题,我将 api.twitter.com 的 URL 切换为 http 并转储了网络流量,它看起来像是两次 POST 到/oauth/access_token。我第一次收到 200 响应,第二次收到 401。在这两者之间,它使用“GET/1/account/verify_credentials.json”方法成功获取经过身份验证的用户的用户信息。不明白为什么代码要第二次调用access_token方法。
在我的 config/initializers/devise.rb 文件中,我添加了:
config.omniauth :twitter, "consumer_key", "consumer_secret"
除了上面 Omniauth 概述页面中概述的其余代码。
我还在我的 OmniauthCallbacksController 中添加了一个“twitter”方法,但由于 401,它从未被调用。
如有任何帮助,我们将不胜感激。
最佳答案
尝试在 dev.twitter.com 上的应用程序设置中填充回调 URL。应该是这样的:
关于ruby - Devise、Omniauth 和 Twitter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7086970/