我有一个具有自定义用户模型的应用程序,它包含2个字段(电子邮件,用户名)作为必填字段。因此要创建用户,需要传递这2个必填字段。 我安装了social_auth_django_app软件包,并添加了Google OAuth2登录名作为后端身份验证。 当我尝试通过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'