为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用基本身份验证从网站注销用户?

如何使用基本身份验证从网站注销用户?

慕斯王 2019-06-20 16:38:38
如何使用基本身份验证从网站注销用户?如果用户使用基本身份验证,是否可以从网站注销用户?杀死会话是不够的,因为一旦用户通过身份验证,每个请求都包含登录信息,因此用户下次使用相同的凭据访问站点时将自动登录。到目前为止,唯一的解决方案是关闭浏览器,但从可用性的角度来看,这是不可接受的。
查看完整描述

3 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

基本身份验证不是为管理注销而设计的。你能做到,但不是完全自动的。

您要做的是让用户单击一个注销链接,并发送一个‘401未经授权’的响应,使用相同的领域和相同的URL文件夹级别,您发送的正常401请求登录。

必须指示他们下一步输入错误的凭证。一个空白的用户名和密码,作为回应,你发送回一个“你已经成功注销了”页面。然后,错误/空白凭据将覆盖以前正确的凭据。

简而言之,注销脚本反转登录脚本的逻辑,只有当用户返回成功页面时才返回。不是通过正确的证件。

问题是,“不要输入您的密码”密码框是否会满足用户的接受。试图自动填充密码的密码管理器也会阻碍您的到来。

编辑以响应注释:重新登录是一个稍微不同的问题(除非您显然需要两个步骤的注销/登录)。您必须拒绝(401)第一次尝试访问重新登录链接,而不是接受第二次访问(它可能具有不同的用户名/密码)。有几种方法你可以做到这一点。一种是将当前用户名包括在注销链接(例如。/relogin?username),并在凭据与用户名匹配时拒绝。


查看完整回答
反对 回复 2019-06-20
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

一个补充的答案由博文斯.。

使用Ajax,您可以将“Logout”链接/按钮连接到Javascript函数。让这个函数发送带有错误用户名和密码的XMLHttpRequest。这个应该能得到401。然后将document.Location设置回登录前页面。这样,用户就不会在注销期间看到额外的登录对话框,也不必记住输入错误的凭据。


查看完整回答
反对 回复 2019-06-20
?
www说

TA贡献1775条经验 获得超8个赞

让用户单击指向https://log:out@example.com/..它将用无效的凭据覆盖现有凭据;将它们注销。


查看完整回答
反对 回复 2019-06-20
  • 3 回答
  • 0 关注
  • 747 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信