我正在使用 Ruby 1.9.2 + Rails 3 + Devise + Omniauth 并尝试使用 Openid 对用户进行身份验证。
我在 omniauth.rb 上的提供者是
provider :open_id, OpenID::Store::Filesystem.new('/tmp')
provider :open_id, OpenID::Store::Filesystem.new('/tmp'),
{:name => "google", :identifier => "https://www.google.com/accounts/o8/id" }
provider :open_id, OpenID::Store::Filesystem.new('/tmp'),
{:name => "yahoo", :identifier => "https://me.yahoo.com" }
我被正确重定向到提供者并调用回调。user_info
但是对于 myopenid,它总是在哈希上返回 nil 。对于 google 或 yahoo,它在调用回调 url 时返回 400(错误请求)。
对于 google 和 yahoo,我添加了:required => []
param(不太确定 id 是做什么的)并且它没有返回 400 错误,但又user_info
是 nil