Mic*_*udy 5 single-sign-on angularjs keycloak
为了介绍当前的设置,我有3个组件:
spa.com。api.comSSO令牌上,并且需要SSO令牌才能起作用。sso.com域下我想在SPA中确定用户是否具有活动的SSO会话,因此,当我登录但没有令牌时,我可以:
我正在使用Keycloak JS适配器,该适配器使用iframe机制并检查KEYCLOAK_SESSIONcookie,并通过一些标志与主机窗口进行通信:
var cookie = getCookie('KEYCLOAK_SESSION');
if (cookie) {
data.loggedIn = true;
data.session = cookie;
}
Run Code Online (Sandbox Code Playgroud)
问题是我不能依靠此cookie来检查用户是否已登录,因为cookie的有效期为30天,这比实际的Keycloak会话持续的时间(例如15分钟)还长。
当用户通过身份验证时会设置此cookie,并且不会在每次令牌更新时刷新。我不明白那是这个标志的目的和目的。
我还在考虑依靠本地存储并在其中保留刷新和访问令牌来确定用户是否已登录,方法是检查超时或尝试刷新访问令牌。但是,这也不可靠,因为用户可能已经使用其他应用程序进行了身份验证。
为问题增加更多的上下文...我的SPA应用程序之一是注册向导,该向导使用REST API来注册用户并得到login_hint回报。这login_hint可以被用作SSO重定向通配符来通过挑战并立即登录。
但是,如果某个其他用户已经登录,我们将获得该其他用户的返回会话,而不是由于used而应登录的用户login_hint。
| 归档时间: |
|
| 查看次数: |
638 次 |
| 最近记录: |