在我的应用中,我需要为每个用户发送一封电子邮件。 Facebook对我来说不方便,并没有将其作为公众形象的一部分。所以我请求许可:
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email', 'public_profile']
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {
'fields': 'id,name,email',
}
现在,用户可以选择不授予电子邮件权限。我想在不授予此权限的情况下进行注册。我该怎么做?
答案 0 :(得分:1)
您需要add function加强执行电子邮件要求的authentication pipeline或提升AuthForbidden
。这是一个例子:
bytes
您需要在创建用户或社交关系之前放置该功能,因此在from social_core.exceptions import AuthForbidden
def email_required(backend, details, user=None, *args, **kwargs):
if details.get('email') or user and user.email:
return
else:
raise AuthForbidden(backend)
之后应该没问题。