小编典典

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

all

如果他使用基本身份验证,是否可以从网站注销用户?

杀死会话是不够的,因为一旦用户通过身份验证,每个请求都包含登录信息,因此用户下次使用相同的凭据访问站点时会自动登录。

到目前为止唯一的解决方案是关闭浏览器,但从可用性的角度来看这是不可接受的。


阅读 80

收藏
2022-04-13

共1个答案

小编典典

基本身份验证并非旨在管理注销。你可以做到,但不能完全自动。

您需要做的是让用户单击注销链接,并发送“401 Unauthorized”作为响应,使用与您发送请求登录的正常 401 相同的领域和相同的 URL
文件夹级别。

接下来必须指示他们输入错误的凭据,例如。一个空白的用户名和密码,作为回应,你会发回一个“你已经成功退出”页面。然后,错误/空白凭据将覆盖以前的正确凭据。

简而言之,注销脚本反转了登录脚本的逻辑,仅在用户 传递正确凭据时才返回成功页面。

问题是有点好奇的“不要输入密码”密码框是否会满足用户的接受。尝试自动填充密码的密码管理器也可能在此处妨碍您。

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

2022-04-13