Django 从社交网站(facebook、instagram)创建用户时添加自定义电子邮件
我在django应用程序中创建用户的自定义Django 从社交网站(facebook、instagram)创建用户时添加自定义电子邮件,django,facebook-authentication,django-users,django-socialauth,python-social-auth,Django,Facebook Authentication,Django Users,Django Socialauth,Python Social Auth,我在django应用程序中创建用户的自定义\u create\u user用户管理器如下所示 def _create_user(self, email, password, is_staff, is_superuser, **extra_fields): if not email: raise ValueError('The email must be set') email = self.normalize_email(email
\u create\u user
用户管理器如下所示
def _create_user(self, email, password, is_staff, is_superuser, **extra_fields):
if not email:
raise ValueError('The email must be set')
email = self.normalize_email(email)
user = self.model(email=email, is_staff=is_staff, is_superuser=is_superuser, date_joined=django.utils.timezone.now(), **extra_fields)
user.set_password(password)
user.save(using=self._db)
return user
当我想从后端创建或检索用户时,我会执行一个类似于user=backend.do\u auth(访问令牌,user=authed\u user)
,其中backend
是Facebook或Instagram,authed\u user
是当前登录的用户或None
。
有时,没有与Facebook相关的电子邮件,Instagram根本不返回任何电子邮件。在这种情况下,我会在前端单独输入电子邮件。如何将其作为参数传递,如果调用user=backend.do\u auth(access\u token,user=authed\u user,email=),需要进行哪些更改abc@xyz.com)
,它将从访问令牌创建一个新用户
,但电子邮件将更改为abc@xyz.com
。请注意,电子邮件也可能是None
,在这种情况下,我希望使用从access\u令牌获得的电子邮件(如果有)