【发布时间】:2017-03-30 12:19:17
【问题描述】:
在我的网站可以通过以下方式登录:
- 用户名和密码
- 电子邮件和密码
- 谷歌身份验证 2
- 脸书
我在哪里使用 django 用户内置系统和 python 社交身份验证。
问题:
假设我创建了以下帐户:
用户名:losimonassi 电子邮件:lorenzosimonassi@gmail.com
然后,当我尝试使用我的 gmail (lorenzosimonassi@gmail.com) 登录时,python social auth 会使用相同的电子邮件创建另一个用户。因此,当我尝试使用我的电子邮件登录时,身份验证系统会发现两封相似的电子邮件,这会引发错误。
我正在尝试找到一种方法,当用户尝试使用 gmail 登录时,他的电子邮件会根据数据库进行检查,如果它已经存在,则进程会通过重定向和警报消息停止(我认为可能是通过中间件制作)。
当然,对数据库的检查应该只检查其他后端用户和普通用户,以避免阻止他自己的登录。
我不想关联帐户。
settings.py
SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details',
'social.pipeline.social_auth.social_uid',
'social.pipeline.social_auth.auth_allowed',
'social.pipeline.social_auth.social_user',
'social.pipeline.user.get_username',
'social.pipeline.user.create_user',
#'social.pipeline.social_auth.associate_user',
#'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.user_details'
)
【问题讨论】:
标签: django django-authentication python-social-auth