我在我的Angular 5应用程序中使用keycloak JavaScript适配器,虽然我的登录和重定向工作,但问题是每当我刷新我的应用程序时它将再次请求keycloak登录,尽管我看到我的会话仍处于活动状态/ auth / realms / {image a realm name} / account。
正如我从keycloak JS Adapter文档https://www.keycloak.org/docs/3.0/securing_apps/topics/oidc/javascript-adapter.html中所理解的那样,当onLoad设置为init-options for login选项时,如果用户登录到Keycloak或者显示登录页面,则会对客户端进行身份验证不。但在我的情况下,似乎需要一秒钟才能让我退出,因为它总是将我重定向到keycloak的登录页面。
答案 0 :(得分:0)
您需要将先前登录时保存的令牌传递给keycloak init构造函数。如果您使用的是授权流程(标准),则也要刷新令牌。这样。
// load previous tokens, saved after successful login of keycloak success callback
const token = localStorage.getItem('kc_token');
const refreshToken = localStorage.getItem('kc_refreshToken');
// pass to keycloak init
keycloak.init({ onLoad: 'login-required', token, refreshToken }).then(
success=>{
localStorage.setItem('kc_token', keycloak.token);
localStorage.setItem('kc_refreshToken', keycloak.refreshToken);
//load your app from here
})