我正在使用 Devise 和 omniauth-facebook 为我的网站进行 Facebook 登录。这在 config/initializers/devise.rb 中定义:
config.omniauth :facebook, app_id, app_secret, scope: 'email'
对于我的网站,我只需要电子邮件地址。但是,我的 FB 应用程序默认设置了三个登录权限 - 电子邮件、public_profile 和 user_friends。
每当单击登录按钮时,FB 对话框都会显示我的应用“将收到以下信息:您的公开个人资料、朋友列表和电子邮件地址”。我不需要朋友列表,也不想阻止用户登录。
我试图直接操纵网址,但这也不起作用:
user_omniauth_authorize_path(provider, :scope => 'email')
再深入一点,我发现omniauth-facebook 中的默认范围是仅在omniauth-facebook/lib/omniauth/strategies/facebook.rb 中定义的电子邮件:
DEFAULT_SCOPE = 'email'
我在这里错过了什么吗?Facebook 是否忽略或覆盖了范围参数?有没有办法更改我的 Facebook 应用程序的默认登录权限?
任何指针将不胜感激。