我正在使用omniauth 并使用open_id 策略登录谷歌和雅虎。这工作正常,直到我在我的网站上启用 SSL。有几个问题。首先,正在生成的 URL 仍然指向 http 而不是 https。我使用来自其他帖子的猴子补丁修复了这个问题(Omniauth 和 open_id 在以 SSL 模式在 nginx 后面运行时损坏了 Google,OpenID 用于 Apache 后面的 rails 应用程序)
现在看起来 URL 没问题,但现在我总是遇到无效凭据失败。我正在使用 nginx 和 unicorn 并在 EC2 上托管,如果有任何相关的话。我在我的独角兽日志中看到了这一点:
(google) Request phase initiated.
WARNING: making https request to https://www.google.com/accounts/o8/id without verifying server certificate; no CA path was specified.
Generated checkid_setup request to https://www.google.com/accounts/o8/ud with assocication ...
(google) Callback phase initiated.
(google) Authentication failure! invalid_credentials encountered.
*注意我删除了上面的关联,因为我不确定那是不是一些私钥或其他东西。
此外,我看到谷歌发布到我的回调“/auth/google/callback”。
最后,关于在不验证服务器证书的情况下发出请求的警告,我在另一篇文章中看到我应该添加以下内容:
require "openid/fetchers"
OpenID.fetcher.ca_file = "/etc/ssl/certs/ca-certificates.crt"
我这样做了,消息消失了,但并没有解决我的问题。我应该将其指向我的 ssl 证书吗?
只是对正在发生的事情感到困惑,并且没有找到好的日志输出来识别问题......