我当前的/config/initializers/omniauth.rb文件包含:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :open_id, nil, :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id'
end
当我通过访问/ auth / google登录Google时,Google报告:
DOMAIN要求您提供Google帐户电子邮件中的部分信息 - 电子邮件地址:NAME(EMAIL)
我的应用程序不需要用户的电子邮件,因此我想删除此入门障碍。无论如何都有删除此要求。对于Facebook,我发现我可以添加选项的“范围”属性,例如:
provider :facebook, 'APP_ID', 'APP_SECRET', {:scope => ''}
答案 0 :(得分:3)
根据对OpenID策略(Google Aps auth继承自的源)的来源的快速回顾,您可以传入选项,指定哪些属性是可选的,而不是属性交换(AX)身份验证所需。
请参阅此处的源代码了解选项:https://github.com/intridea/omniauth/blob/master/oa-openid/lib/omniauth/strategies/open_id.rb
基于此,我认为您可以更改这样的选项,将电子邮件删除为必需属性:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :open_id, nil, :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id', :required => [], :optional => []
end
祝你好运。我没有测试过,只是阅读了源代码。