weo*_*tch 5 openid ruby-on-rails google-account attribute-exchange omniauth
我当前的/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
Run Code Online (Sandbox Code Playgroud)
当我通过访问/ auth/google登录Google时,Google会报告:
DOMAIN要求您提供来自Google帐户的一些信息EMAIL - 电子邮件地址:NAME(EMAIL)
我的应用程序不需要用户的电子邮件,因此我想删除此入门障碍.无论如何都有删除此要求.对于Facebook,我发现我可以添加选项的"范围"属性,例如:
provider :facebook, 'APP_ID', 'APP_SECRET', {:scope => ''}
Run Code Online (Sandbox Code Playgroud)
根据对 OpenID 策略(Google Aps 身份验证继承自)的源的快速审查,您可以传入选项,指定哪些属性是属性交换 (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
Run Code Online (Sandbox Code Playgroud)
祝你好运。我没有测试这个,只是阅读源码。
归档时间: |
|
查看次数: |
759 次 |
最近记录: |