如何在 React Okta Auth Js 中禁用令牌自动续订

问题描述 投票:0回答:1

我在我的反应应用程序中使用最新版本的

@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。但它不起作用。

reactjs authentication okta
1个回答
0
投票

如果是 @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,
      }
    };
© www.soinside.com 2019 - 2024. All rights reserved.