ReactJS:Okta Auth RestoreOriginalUri 函数不重定向

ReactJS: Okta Auth RestoreOriginalUri Function not Redirecting

我被这个问题困扰了很长一段时间。

我正在为我的 React SPA 使用 Okta 身份验证,一切进展顺利,但是 restoreOriginalUri 函数实际上并没有 route/redirect 返回到成功身份验证时的原始 URI。

package.json

    "@okta/okta-auth-js": "^5.6.0",
    "@okta/okta-react": "^6.2.0",
    "@okta/okta-signin-widget": "^5.8.1",

代码:

    <Security
      oktaAuth={oktaAuth}
      onAuthRequired={customAuthHandler}
      restoreOriginalUri={restoreOriginalUri} // not working
    >
      <Switch>
        <Provider store={store}>
          <Route exact path="/" component={Home} />
          <Route exact path="/reports" component={Reports} />
        </Provider>
      </Switch>
    </Security>
// restoreOriginalUri function

  const restoreOriginalUri = async (_oktaAuth, originalUri) => {
    console.log("restoring original uri...");
    history.replace(toRelativeUrl(originalUri, window.location.origin));
  };

错误信息:

我知道身份验证是成功的,因为一旦我收到错误消息并刷新浏览器页面,我就可以导航到我的受保护路由并通过范围查看用户身份,而无需被迫 /login

有什么想法吗?

TIA

尝试将您的 restorOriginalUri const 更改为以下内容:

const restoreOriginalUri = async (oktaAuth, originalUri) => {
  history.replace(toRelativeUrl(originalUri || '/', window.location.origin));
};