问题
我正在开发的网站是一个 Rails 应用程序,它允许用户使用他们的 Facebook 帐户登录。
在 Facebook Auth Dialog 页面上,他们被要求提供基本信息和电子邮件。然后将电子邮件保存到数据库中。
但是,最近我注意到有很多用户的电子邮件是nil
or ""
。我使用 Open Graph API ( ) 检查了他们的权限https://graph.facebook.com/#{id}/permissions
。他们中的一些人授予了email
许可,而有些人没有。
我不知道这怎么会发生。
我的实验
1
虽然文档说:
如果您使用的是增强型身份验证对话框,则以下权限在身份验证流程中是用户不可撤销的。如果您在首次身份验证过程中向用户请求这些权限,则用户必须授予这些权限才能继续并授权您的应用程序。
在 Auth Dialog 页面 ( https://www.facebook.com/dialog/permissions.request?app_id=...&display=page&next=...&response_type=code&perms=email&fbconnect=1
) 上,我可以删除perms=email
参数,然后不会请求电子邮件。
如果我使用此对话框登录,应用程序不会收到电子邮件地址。
2
在应用程序 > 设置 > 权限中,我尝试设置一些我不需要的权限。(在我实验之前,设置是空的)。
但这些设置对身份验证过程没有影响。
问题
鉴于我的设置(Rails + Devise + Omniauth),是否可以确保用户在登录前授予电子邮件权限?