我在我的反应应用程序中使用最新版本的
@okta/okta-react
(6.7.0)和@okta/okta-auth-js
(7.2.0)。
令牌更新会在实际到期时间 30 秒之前自动进行。但我不希望这种自动续订,而是想在令牌过期之前向用户显示警告弹出窗口,如果用户单击弹出窗口中的续订按钮,那么我想显式续订令牌。如果用户没有单击按钮,则令牌将过期。
如何禁用
@okta/okta-auth-js
中的默认自动续订过程。我尝试了下面的代码,但它不起作用。
const oktaConfig = {
issuer: "https://*****.okta.com/oauth2/******",
clientId: "******",
redirectUri: window.location.origin + "/implicit/callback",
pkce: true,
tokenManager: {
autoRenew: false,
storage: 'localStorage'
}
};
const authClient = new OktaAuth(oktaConfig);
return (
<Security oktaAuth={authClient} restoreOriginalUri={restoreOriginalUri}>
...
</Security>
);
这里我将 autoRenew 属性作为 false 传递给 tokenManager。但它不起作用。
如果是 @okta/okta-auth-js 版本 7.x 它将弃用 tokenManager.autoRenew 上的配置,但出于兼容性原因,可以在那里进行配置。
并将配置移至 services.autoRenew 参考:https://github.com/okta/okta-auth-js
因此您禁用可再生令牌的配置应该如下所示
const oktaConfig = {
issuer: "https://*****.okta.com/oauth2/******",
clientId: "******",
redirectUri: window.location.origin + "/implicit/callback",
pkce: true,
tokenManager: {
autoRenew: false,
storage: 'localStorage'
},
services: {
autoRenew: false,
}
};