0

Ruby 1.9.2 + Rails 3 + Devise + Omniauth を使用しており、Openid でユーザーを認証しようとしています。

omn​​iauth.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_infonil でした 。

4

1 に答える 1

0

それは許可かもしれません。('tmp') を ('./tmp') に変更してみてください

于 2011-12-30T03:07:33.793 に答える