我正在使用omniauth并使用open_id策略登录google和yahoo。这工作正常,直到我在我的网站上启用了SSL。有几个问题。首先,生成的URL仍然指向http而不是https。我使用其他帖子(Omniauth and open_id with Google broken when running behind nginx in SSL mode,OpenID for rails app behind Apache)
中的猴子补丁修复了这个问题现在看起来网址还可以,但现在我总是得到无效的凭据失败。我正在使用nginx和独角兽并在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证书吗?
只是对正在发生的事情感到困惑,没有找到好的日志记录输出来识别问题......