首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >社交-auth-app-django:如何在没有密码的情况下断开用户的连接

社交-auth-app-django:如何在没有密码的情况下断开用户的连接
EN

Stack Overflow用户
提问于 2022-01-31 12:34:51
回答 2查看 280关注 0票数 1

在我的网站(www.raptors.ru)上,我使用社交软件-auth django授权来自Facebook的用户。为了简化他们的日志记录,我做了以下设置:

代码语言:javascript
复制
ACCOUNT_PASSWORD_INPUT_RENDER_VALUE = True

这样用户就不需要输入他们的密码。当FB用户第一次登录时,将在表users中创建一个记录。重要的是,这个用户在我的站点上没有密码。然而,这个用户功能齐全:他可以发布帖子、发表评论等等。如果用户想要与他的社交账户断开连接,问题就开始了。首先,如果一个人试图通过LoginCancelledView断开他的帐户(直接链接是https://raptors.ru/accounts/social/login/cancelled/ ),他会收到一条消息,他成功地断开了连接,但这不是事实,因为他的用户名仍然在页面头上(见截图)。

第二种断开连接的方法是从连接页面(https://raptors.ru/accounts/social/connections/)。

但是,如果用户单击Remove按钮,Django就不会这样做,并报告如下错误:您的帐户没有设置密码。

请告诉我,从我的网站上断开(或完全删除) Facebook用户的正确和工作方式是什么?FB坚持认为我应该提供这个选项。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-22 07:34:19

有一个注销(django.contrib.auth)方法可用于此,例如在我的views.py中:

代码语言:javascript
复制
from django.contrib.auth import logout
from django.shortcuts import redirect
...
def logout_request(request)
    logout(request)
    return redirect('/')

在我的urls.py中,要触发这个方法:

代码语言:javascript
复制
urlpatterns =[
    ...,
    path('logout', views.logout_request, name="logout),

]

这对我来说很管用

票数 0
EN

Stack Overflow用户

发布于 2022-06-20 12:26:36

Allauth提供了一个设置现有用户密码的视图,该密码可用于向以前只有社交登录的用户添加密码。来自文献资料

经过身份验证的用户可以使用allauth.account.views.PasswordSetViewallauth.account.views.PasswordChangeView视图管理他们的密码帐户,分别在/ account / password /set/account/password/change/ (URL name account_set_passwordaccount_change_password )。 根据用户是否设置了密码(user.has_usable_password()),用户在这些视图之间被重定向。通常情况下,当用户通过社交提供商注册时,他们将没有密码设置。

因此,您可以做的是首先让用户设置一个密码(通过转到/accounts/ password / set /),然后断开社交帐户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70926049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档