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" }
プロバイダーに正しくリダイレクトされ、コールバックが呼び出されます。ただし、myopenid の場合、user_info
ハッシュでは常に nil が返されます。また、コールバック URL が呼び出されると、google または yahoo の両方で 400 (Bad Request) が返されます。
google と yahoo の場合、:required => []
param を追加しました (id が何をするのかよくわかりません)。400 エラーは返されませんでしたが、やはりuser_info
nil でした 。