在 Django 中,如果我们使用 google oauth 为什么电子邮件地址没有添加到用户模型中?
In Django if we use google oauth why the email address are not added in the User model?
在我的 Django 应用程序中,我使用了 google oauth2 进行登录,因此当用户注册时,first_name、last_name 和用户名会自动添加到 User
模型,可以通过管理面板查看。但是没有添加用户的电子邮件地址,为什么会这样? 当用户使用 OAuth 注册时,有什么方法可以将电子邮件地址添加到 User
模型?
默认情况下(如果您未指定 SCOPE),会请求配置文件范围,并可选择电子邮件范围,具体取决于是否启用 SOCIALACCOUNT_QUERY_EMAIL
。参见 django-allauth。
您可以选择指定要使用的范围,如下所示:
SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': [
'profile',
'email',
],
'AUTH_PARAMS': {
'access_type': 'online',
}
}
}
有效范围包括:电子邮件、phone、地址、aq:name、aq:location。如果 SOCIALACCOUNT_QUERY_EMAIL=True
,则默认请求用户名和电子邮件地址。您可以通过设置 SOCIALACCOUNT_EMAIL_VERIFICATION=True
和 SOCIALACCOUNT_EMAIL_REQUIRED=True
.
来请求并要求一个经过验证的电子邮件地址
更新
另见 configuration SOCIALACCOUNT_EMAIL_VERIFICATION
。
在我的 Django 应用程序中,我使用了 google oauth2 进行登录,因此当用户注册时,first_name、last_name 和用户名会自动添加到 User
模型,可以通过管理面板查看。但是没有添加用户的电子邮件地址,为什么会这样? 当用户使用 OAuth 注册时,有什么方法可以将电子邮件地址添加到 User
模型?
默认情况下(如果您未指定 SCOPE),会请求配置文件范围,并可选择电子邮件范围,具体取决于是否启用 SOCIALACCOUNT_QUERY_EMAIL
。参见 django-allauth。
您可以选择指定要使用的范围,如下所示:
SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': [
'profile',
'email',
],
'AUTH_PARAMS': {
'access_type': 'online',
}
}
}
有效范围包括:电子邮件、phone、地址、aq:name、aq:location。如果 SOCIALACCOUNT_QUERY_EMAIL=True
,则默认请求用户名和电子邮件地址。您可以通过设置 SOCIALACCOUNT_EMAIL_VERIFICATION=True
和 SOCIALACCOUNT_EMAIL_REQUIRED=True
.
更新
另见 configuration SOCIALACCOUNT_EMAIL_VERIFICATION
。