问题描述
在我的 Django 应用程序中,我使用了 google oauth2 进行登录,因此当用户注册时,first_name、last_name 和 username 会自动添加到 User
模型中,并且可以通过管理面板查看。但是没有添加用户的电子邮件地址,为什么会这样? 当用户使用 OAuth 注册时,我们是否可以将电子邮件地址添加到 User
模型中?
解决方法
默认情况下(如果您未指定 SCOPE),将请求配置文件范围,并根据是否启用 SOCIALACCOUNT_QUERY_EMAIL
选择电子邮件范围。见django-allauth。
或者,您可以指定要使用的范围,如下所示:
SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': [
'profile','email',],'AUTH_PARAMS': {
'access_type': 'online',}
}
}
有效范围包括:电子邮件、电话、地址、aq:name、aq:location。如果SOCIALACCOUNT_QUERY_EMAIL=True
,默认是请求用户名和电子邮件地址。您可以通过设置 SOCIALACCOUNT_EMAIL_VERIFICATION=True
和 SOCIALACCOUNT_EMAIL_REQUIRED=True
来请求并要求提供经过验证的电子邮件地址。
更新
对于 SOCIALACCOUNT_EMAIL_VERIFICATION
,另见 configuration。