通过覆盖SocialAccountManager
def save_user(self, request, sociallogin, form=None):
"""
Saves a newly signed up social login. In case of auto-signup,
the signup form is not available.
"""
u = sociallogin.user
u.set_unusable_password()
if form:
get_account_adapter().save_user(request, u, form)
else:
get_account_adapter().populate_username(request, u)
sociallogin.save(request)
return u
如何从社交帐户注册中获取密码
答案 0 :(得分:0)
实际上,你不能。
Django Allauth不会为社交登录用户散列或存储密码。它不会在其结束时处理身份验证。
假设用户尝试在您的网站上进行谷歌登录,则身份验证会在谷歌服务器上进行,而不是在您的网站上。如果用户的密码正确,则LOGIN_REDIRECT_URL =" url-name /"在您的django项目中定义的用户将该用户重定向到URL。
答案 1 :(得分:0)
您无法获取密码。如果可以,或者那些社交应用程序共享其用户的密码,那么您和该社交应用程序都违反了用户隐私规则。在我看来,这是一种犯罪行为。
您可以做的唯一方法是让您的用户为您的网站设置新密码。向他们发送电子邮件以确认更改。但这意味着你必须为你的应用制作一条额外的路线,这没有任何意义。