我在我的 Angular 5 应用程序中使用 keycloak JavaScript 适配器,虽然我的登录和重定向工作正常,但问题是每当我刷新我的 ng 应用程序时,它会再次要求 keycloak 登录,尽管我看到我的会话仍然在 /auth/realms 上处于活动状态/{形象一个领域名称}/帐户。
正如我从 keycloak JS Adapter 文档https://www.keycloak.org/docs/3.0/securing_apps/topics/oidc/javascript-adapter.html 中了解到的那样,当 onLoad 设置为 login-required 时,它会进行身份验证如果用户已登录到 Keycloak,则客户端显示,否则显示登录页面。但就我而言,似乎需要一秒钟才能注销我,因为它总是将我重定向到 keycloak 的登录页面。
您需要将先前登录时保存的令牌传递给 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
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10291 次 |
| 最近记录: |