带有 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的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 VueJS2 的 Rails 5.1 API

带有 Ruby 2.5.1 控制台的 Rails 5.2.0 - `warning:` `already` 已初始化常量 FileUtils::VERSION

带有rails api 5的CORS

带有 select2 的 Rails 5 ask_as_taggable

如何将带有 PostCSS 清除的 Tailwind CSS 添加到 Rails 5?

Ruby on rails 5.2 - 带有活动存储的背景图像