【发布时间】:2012-10-11 07:14:04
【问题描述】:
问题
我正在开发的网站是一个 Rails 应用程序,它允许用户使用他们的 Facebook 帐户登录。
在 Facebook Auth Dialog 页面上,要求他们提供基本信息和电子邮件。然后将电子邮件保存到数据库中。
但是,最近我注意到有很多用户的电子邮件是nil 或""。我使用 Open Graph API (https://graph.facebook.com/#{id}/permissions) 检查了他们的权限。其中一些授予了email 权限,而另一些则没有。
我不知道这是怎么发生的。
我的实验
1
虽然the documentation 说:
如果您使用的是增强型身份验证对话框,则以下权限在身份验证流程中是用户不可撤销的。 如果您在首次身份验证过程中向用户请求这些权限,用户必须授予这些权限才能继续并授权您的应用程序。
在 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),是否可以确保用户在登录前授予电子邮件权限?
【问题讨论】:
标签: ruby-on-rails facebook devise omniauth facebook-oauth