什么是正确的配置线来获得设计,omniauth和谷歌工作?

时间:2011-02-16 14:51:10

标签: ruby-on-rails openid devise omniauth

我已查看过文档,但我无法弄清楚我想要使用的特定行,以便让设计+ omniauth + google很好地协同工作。

此策略文件表明这是一种简单的方法,但我无法找到示例。

https://github.com/intridea/omniauth/blob/master/oa-oauth/lib/omniauth/strategies/google.rb

目前我在devise.rb初始化文件中使用以下行。

config.omniauth :google, GOOGLE_APP_ID, GOOGLE_SECRET_KEY

但我很确定它不完整。

另外,我很难找到我应该在哪里注册Google应用ID和密钥。

提前致谢。 格雷姆

4 个答案:

答案 0 :(得分:2)

Google是一个openid实现。在初始文件中添加以下内容

provider :openid, OpenID::Store::Filesystem.new('./tmp'), :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id'

答案 1 :(得分:2)

我最后使用的一行是......

config.omniauth :google, GOOGLE_APP_ID, GOOGLE_SECRET, :scope => "http://www.google.com/m8/feeds http://picasaweb.google.com/data/"

原来我错过了访问Picasa所需的范围,这正是导致我出现问题的原因。

答案 2 :(得分:1)

您可能需要查看https://github.com/holden/devise-omniauth-example。请特别注意methods defined in user.rb,他们使用的user_token模型,devise viewsdevise.rb。最后一个特别展示了如何配置devise / omniauth以通过openid与google协同工作:config.omniauth :google_apps, OpenID::Store::Filesystem.new('/tmp'), :domain => 'gmail.com'希望它有所帮助:)

答案 3 :(得分:0)

我在omniauth.rb中添加了以下几行,它就像魅力一样:

Rails.application.config.middleware.use OmniAuth::Builder do  
   provider :openid, nil, :name => 'google', :identifier =>'https://www.google.com/accounts/o8/id'  
end