Oauth 设置中登出功能无法正常工作

你好,

我们遇到一个小问题:点击登出按钮后,用户并未真正登出。

我们的配置

我们使用 Vue.js 作为前端,并通过 Auth0 进行身份验证。登录后,您可以点击消息板按钮,系统会将您重定向到我们的 Discourse 论坛,在那里您会再次通过 Auth0 进行身份验证。

安装说明

我按照这篇教程进行了操作。

问题描述/复现步骤

当您在 Discourse 论坛上点击登出时,会短暂显示一个包含“刷新”按钮的模态框,但随后页面会自动刷新,并重新加载论坛,而用户并未登出。

以下是浏览器调用过程的截图。我不确定那些红色的错误调用,因为它们似乎在红色错误调用之后再次触发,然后看起来又成功了。

我在调试日志中也找不到与此相关的任何信息。

预期行为

用户应从 Auth0 登出,导致页面重定向到 Auth0 登录页面。

嗯,问题在于用户确实会被登出,但随即又自动重新登录。一个解决方案是将“登出重定向”设置指向某个外部网站,这样用户就不会立即被重新登录。或者,你也可以将其设置为 /login:thinking:

我会在接下来的几天里再思考一下,看看我们能否想出更好的解决方案。拥有一个点击后却……毫无作用的登出按钮确实令人困惑。

仅在以下情况下会出现此问题:

  • 使用单点登录(SSO)或单一认证策略,且本地登录已禁用
  • 启用了“需要登录”

我们是否可以在仪表板上添加一条警告,当同时满足这两个条件时,提示用户在其他地方正确设置登出重定向?这是一种相对少见的配置,管理员只需额外花 5 秒钟设置登出地址即可解决。

@david 重定向到登录页面是个不错的解决方案,谢谢!同意 @Falco 的观点,您可能需要设置一个警告,否则会导致奇怪的行为!

太好了!

正如 @Falco 所说,这种情况相当罕见,但我认为我会将需要登录的站点的默认登出重定向配置为 /login——既简单又直接,这样我们就不必依赖用户去阅读警告信息了。

/login 在需要登录且启用了 SSO 的情况下不会触发自动登录?

正确。这有点反直觉,但 SSO 一直如此运作,因此这种新的单验证器模式也是如此。

我已为此问题提交了一个 PR,它也解决了 SSO 站点上的相同问题