带有 Rails 5 的 Omniauth-twitter 停止工作! OAuth::Unauthorized 403 Forbidden
Posted
技术标签:
【中文标题】带有 Rails 5 的 Omniauth-twitter 停止工作! OAuth::Unauthorized 403 Forbidden【英文标题】:Omniauth-twitter with Rails 5 stopped working! OAuth::Unauthorized 403 Forbidden 【发布时间】:2018-11-22 09:59:52 【问题描述】:一切正常,Omniauth 突然停止工作。我没有进行任何代码更改。
我检查了 Twitter 应用程序设置: 我的主要生产 url 有回调 url,并且回调 URL 锁定为否。所有键都是正确的。
有什么想法吗? ????
OAuth::未授权
403 禁止
【问题讨论】:
我也尝试过重新生成令牌。还是同样的问题! 相关? ***.com/q/50560813 【参考方案1】:我已经能够解决它(也用于开发)添加这个网址:
用于生产:
https://mydomain/users/auth/twitter/callback
http://mydomain/users/auth/twitter/callback
用于开发:
http://localhost:3000/users/auth/twitter/callback
【讨论】:
这似乎是可行的解决方案。适用于本地和生产环境。 哇,谢谢@antoniobg87!我错过了 users/ 部分,而不是仅仅添加 auth/twitter/callback。这在生产中对我有用。干杯【参考方案2】:现在在 twitter 回调 URL 上,你必须添加 2 个回调 URL,并且回调 URL 必须是你的应用程序的路径。
我遇到了同样的问题,现在添加第二个回调 URL,它已修复。
更多信息请查看:https://twittercommunity.com/t/action-required-sign-in-with-twitter-users-must-whitelist-callback-urls/105342
【讨论】:
嘿,是的,我也试过了。添加第二个 mysitecom/auth/twitter/callback 固定 10 分钟。现在遇到同样的问题。你到底给了什么网址?谢谢! @Designer 你在回调中添加了什么网址? mysitedotcom/ 和 mysitedotcom/auth/twitter/callback 都带有 h t t p s 有人最好在 Omniauth 回购中提出问题 @Designer尝试回调url:mysitedotcom/users/auth/twitter/callback和mysitedotcom/users/auth/twitter/callback,必须要加2个url【参考方案3】:添加第二个回调 URL 到 https://mysitecom/auth/twitter/callback 解决了这个问题(暂时)
——-
更新:这实际上解决了大约 10 分钟的问题。现在遇到同样的问题
【讨论】:
我也遇到了这种情况。你能详细说明你做了什么吗? 这实际上解决了大约 10 分钟的问题。现在遇到同样的问题【参考方案4】:我从事的是开发而不是生产,并且在使用omniauth 和omniauth-twitter gem 时遇到了这个问题。但是有了这两个回调 URL:
http://127.0.0.1:3000
http://localhost:3000/auth/twitter/callback
这个问题被避免了。奇怪,因为 RailsApps 教程警告不要在 Twitter 上使用“localhost”。
【讨论】:
【参考方案5】:这几乎肯定与此更改有关:Action REQUIRED - Sign in with Twitter users must whitelist callback URLs。
来自链接:
30 天后,我们将开始强制执行白名单,以便任何 URL 未加入白名单将失败。这意味着 URL 不能 在调用 oauth/request_token 端点 112. 提供的 callback_url 参数 必须匹配列入白名单的回调 URL 之一。虽然我们一般 为此类更改提供超过 30 天的通知,这 时间表使我们能够继续提供安全可靠的体验 供开发人员和我们的用户使用。
您可以将回调 URL 添加到应用程序的白名单中 apps.twitter.com 488 上的设置页面。
启用“启用回调锁定”设置以测试仅 URL 您已列入白名单被接受。回调 URL 将自动 锁定,白名单将从 6 月 12 日开始执行。这 “启用回调锁定”设置将在该日期移除。
我无法让它在 127.0.0.1
的开发中工作,所以我最终创建了一个指向 127.0.0.1
的 DNS A
记录(例如,dev.example.com
)并在 @ 上的回调 url 设置中使用它987654322@.
【讨论】:
【参考方案6】:Unicode 域名。 Twitter 给我错误:不支持的域名格式。我需要完全匹配的回调 url,由我的服务器发送,并在我的 twitter 应用程序中使用回调 url。 解决方案: 配置/初始化/twitter.rb
OmniAuth::Strategies::Twitter.class_eval do
def callback_url
return my_custom_twitter_app_callback_url_string_variable
end
end
【讨论】:
my_custom_twitter_app_callback_url_string_variable = 'my.ip.ad.res/auth/twitter/callback'【参考方案7】:我刚刚通过将 https://domain/oauths/callback
放入回调 URL 列表中解决了这个问题。确保启用回调锁定选项。
【讨论】:
以上是关于带有 Rails 5 的 Omniauth-twitter 停止工作! OAuth::Unauthorized 403 Forbidden的主要内容,如果未能解决你的问题,请参考以下文章
带有 Ruby 2.5.1 控制台的 Rails 5.2.0 - `warning:` `already` 已初始化常量 FileUtils::VERSION
带有 select2 的 Rails 5 ask_as_taggable