使用 SPA 和 oidc-js 的会话超时



我将angular 5与oidc-client和身份服务器4一起使用。oidc 客户端是否支持会话超时,或者我需要手动实现它?

通过会话超时,我的意思是,用户将在一段时间不活动后注销

对于您的 SPA 应用程序,您可以使用隐式流程,刷新令牌不是自动可能的,但 OIDC-CLIENT.js 可以让您轻松。 您可以使用静默刷新,OIDC 客户端将在新access_token到期之前发送活动 cookie 会话以获取新。 你只需要配置它

const config = {
authority: xxxxx,
client_id: xxxxx,
popup_redirect_uri: `${OidcConfig.clientRoot}/assets/html/popup-login-redirect.html`,
scope: 'openid profile',
response_type: 'id_token token',
post_logout_redirect_uri: `${OidcConfig.clientRoot}?postLogout=true`, // delet all stored tokens after logout
userStore: new WebStorageStateStore({ store: window.localStorage }),
automaticSilentRenew: true, // enable silent refresh
silent_redirect_uri: `${OidcConfig.clientRoot}/assets/html/silent-refresh-redirect.html` // here when you can get the new tokens
};

以下是静默刷新重定向的内容.html

<script src="https://cdnjs.cloudflare.com/ajax/libs/oidc-client/1.5.1/oidc-client.min.js"></script>
<script>
var config = {
userStore: new Oidc.WebStorageStateStore({ store: window.localStorage })
};
new Oidc.UserManager(config).signinSilentCallback()
.catch((err) => {
console.log(err);
});
</script>

最新更新