Django社交认证如何获得许可或死亡尝试

时间:2018-04-09 14:14:05

标签: python-social-auth django-socialauth

在我的应用中,我需要为每个用户发送一封电子邮件。 Facebook对我来说不方便,并没有将其作为公众形象的一部分。所以我请求许可:

SOCIAL_AUTH_FACEBOOK_SCOPE = ['email', 'public_profile']
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {
    'fields': 'id,name,email', 
}

现在,用户可以选择不授予电子邮件权限。我想在不授予此权限的情况下进行注册。我该怎么做?

1 个答案:

答案 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) 之后应该没问题。