微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Django 中,如果我们使用 google oauth 为什么没有在 User 模型中添加电子邮件地址?

如何解决在 Django 中,如果我们使用 google oauth 为什么没有在 User 模型中添加电子邮件地址?

在我的 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=TrueSOCIALACCOUNT_EMAIL_REQUIRED=True 来请求并要求提供经过验证的电子邮件地址。


更新

对于 SOCIALACCOUNT_EMAIL_VERIFICATION,另见 configuration

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。