0

我正在使用 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

4

1 回答 1

0

可能是权限。尝试将 ('tmp') 更改为 ('./tmp')

于 2011-12-30T03:07:33.793 回答