Django 社交身份验证如何获得许可或死于尝试
Django social auth how to get permission or die trying
在我的应用程序中,我需要为每个用户提供一封电子邮件。 Facebook 不将其作为 public 个人资料的一部分提供给我,这对我来说很不方便。所以我请求许可:
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email', 'public_profile']
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {
'fields': 'id,name,email',
}
现在,用户可以选择不授予电子邮件权限。我想在不授予此权限的情况下进行注册。我该怎么做?
您需要add function to the authentication pipeline that enforces the email requirement or raises AuthForbidden
。这是一个例子:
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)
您需要在创建用户或社交关系之前放置该功能,因此在 social_uid
之后应该没问题。
在我的应用程序中,我需要为每个用户提供一封电子邮件。 Facebook 不将其作为 public 个人资料的一部分提供给我,这对我来说很不方便。所以我请求许可:
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email', 'public_profile']
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {
'fields': 'id,name,email',
}
现在,用户可以选择不授予电子邮件权限。我想在不授予此权限的情况下进行注册。我该怎么做?
您需要add function to the authentication pipeline that enforces the email requirement or raises AuthForbidden
。这是一个例子:
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)
您需要在创建用户或社交关系之前放置该功能,因此在 social_uid
之后应该没问题。