我使用Pyramid和Velruse对用户进行身份验证,当用户尝试通过Facebook进行身份验证时,我发现了一个异常。这里的错误是KeyError: 'verifiedEmail'
:
// Callback view for Facebook.
@view_config(
context='velruse.AuthenticationComplete',
)
def authenticate_complete(request):
context = request.context
email = context.profile['verifiedEmail']
...
查看Velruse code似乎Facebook个人资料可能不包含电子邮件信息,尽管Facebook声明该电子邮件是我的应用默认批准的信息。
这里出了什么问题?这是我可能必须处理的Facebook用户设置,还是我的代码中缺少的东西?
答案 0 :(得分:3)
Facebook声明该电子邮件是我的应用默认批准的信息
email
范围/权限不需要登录审核,但您必须在身份验证流程中请求它,以便提示用户与您的应用程序共享它。
用户可以拒绝您访问其电子邮件的请求。此外,一些用户使用手机号码登录,并且可能没有Facebook上的电子邮件地址。
简短回答:有些用户不会给予或收到电子邮件。您的应用程序需要考虑到这一点。