Joralf
(Joralf)
1
你好,
我们遇到一个小问题:点击登出按钮后,用户并未真正登出。
我们的配置
我们使用 Vue.js 作为前端,并通过 Auth0 进行身份验证。登录后,您可以点击消息板按钮,系统会将您重定向到我们的 Discourse 论坛,在那里您会再次通过 Auth0 进行身份验证。
安装说明
我按照这篇教程进行了操作。
问题描述/复现步骤
当您在 Discourse 论坛上点击登出时,会短暂显示一个包含“刷新”按钮的模态框,但随后页面会自动刷新,并重新加载论坛,而用户并未登出。
以下是浏览器调用过程的截图。我不确定那些红色的错误调用,因为它们似乎在红色错误调用之后再次触发,然后看起来又成功了。
我在调试日志中也找不到与此相关的任何信息。
预期行为
用户应从 Auth0 登出,导致页面重定向到 Auth0 登录页面。
david
(David Taylor)
2
嗯,问题在于用户确实会被登出,但随即又自动重新登录。一个解决方案是将“登出重定向”设置指向某个外部网站,这样用户就不会立即被重新登录。或者,你也可以将其设置为 /login。
我会在接下来的几天里再思考一下,看看我们能否想出更好的解决方案。拥有一个点击后却……毫无作用的登出按钮确实令人困惑。
Falco
(Falco)
3
仅在以下情况下会出现此问题:
- 使用单点登录(SSO)或单一认证策略,且本地登录已禁用
- 启用了“需要登录”
我们是否可以在仪表板上添加一条警告,当同时满足这两个条件时,提示用户在其他地方正确设置登出重定向?这是一种相对少见的配置,管理员只需额外花 5 秒钟设置登出地址即可解决。
Joralf
(Joralf)
4
@david 重定向到登录页面是个不错的解决方案,谢谢!同意 @Falco 的观点,您可能需要设置一个警告,否则会导致奇怪的行为!
david
(David Taylor)
5
太好了!
正如 @Falco 所说,这种情况相当罕见,但我认为我会将需要登录的站点的默认登出重定向配置为 /login——既简单又直接,这样我们就不必依赖用户去阅读警告信息了。
Falco
(Falco)
6
/login 在需要登录且启用了 SSO 的情况下不会触发自动登录?
david
(David Taylor)
7
正确。这有点反直觉,但 SSO 一直如此运作,因此这种新的单验证器模式也是如此。
david
(David Taylor)
9
我已为此问题提交了一个 PR,它也解决了 SSO 站点上的相同问题