我有一个带有自定义模型类的应用程序,它包含2个必填字段(电子邮件,用户名)。因此要创建用户,需要传递这2个必填字段。 我安装了social_auth_django_app软件包,并添加了Google OAuth2登录名作为后端。 当我尝试通过Google登录时,收到一条错误消息,指出没有用户名字段无法创建用户。 我在Google上搜索,发现有一种使用自定义管道处理这些社会身份验证的方法。任何人都可以帮助我如何创建自定义管道并处理上述情况,以便从Google OAuth2获取更多数据并分配用户名字段以创建新用户。如果有任何缺点,请告诉我
Sample Models.py
class User(AbstractBaseUser):
email = models.EmailField(
verbose_name='Email Address',
max_length=255,
unique=True,
)
unique_username = models.CharField(
verbose_name='Username',
max_length=30,
unique=True,
)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['unique_username',]
Settings.py
INSTALLED_APPS = [
......
#Social Login
'social_django',
]
AUTHENTICATION_BACKENDS = (
'social_core.backends.github.GithubOAuth2',
...........
'django.contrib.auth.backends.ModelBackend',
)
MIDDLEWARE = [
..........
# Social Login
'social_django.middleware.SocialAuthExceptionMiddleware',
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [TEMPLATE_DIR],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
..............
# Social Login
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',
],
},
},
]
#Google
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'App ID'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'App Secret ID'