即使在调用/注销URL后,auth0仍然可以无缝自动登录

问题描述 投票:0回答:2

简单的问题,我想登录和退出各种用户的应用程序,以检查不同的应用程序功能。应用程序正在使用Auth0进行用户管理。

我将/ v2 / logout url称为我的流程的一部分。

但不知何故,在我退出之后,当我再次登录时,无缝SSO行为会运行,我会立即再次登录而没有提示 - 就好像从未调用过注销URL一样。

再次获取登录提示的唯一方法是清除浏览器缓存。在我需要删除的地方是否有auth0 cookie?或者我错过了什么?我正在阅读无缝的SSO文档但除了调用/ v2 / logout之外没有看到任何内容。

auth0
2个回答
1
投票

调用Auth0 /v2/logout API endpoint将使用户退出Auth0和可选的IdP(如果指定federated参数)。它不会从您的应用程序中注销用户,因此您需要在应用程序中实现该用户。

在Javascript SPA example中,在setSession()中,我们将存储Access令牌(及其到期日期)和ID令牌存储在localStorage中。在logout()函数中,我们将删除这些条目。这是从应用程序用户会话注销。您可以选择重定向到/v2/logout以清除此功能中的Auth0和IdP会话。这样,当您检查用户是否经过身份验证时,isAuthenticated()返回false,我们强制用户再次登录。


0
投票

事实证明,问题在于重定向用户而不是直接调用注销URL。我正在使用单独的ajax api调用注销URL。但是,当我使用window.location.replace(logoutUrl)时,注销实际上发生了。

来自auth0文档:

To force a logout, redirect the user to the following URL:

https://YOUR_AUTH0_DOMAIN/v2/logout

Redirecting the user to this URL clears all single sign-on cookies set by Auth0 for the user.

因此单独调用不起作用 - 必须重定向。我认为这是有道理的 - 一个单独的ajax调用没有用户会话上下文。

© www.soinside.com 2019 - 2024. All rights reserved.