1

我已经被这个问题难住了很长一段时间。

我正在为我的 React SPA 使用 Okta 身份验证,一切进展顺利,但是该restoreOriginalUri功能实际上并没有在成功身份验证时路由/重定向回原始 URI。

包.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

4

1 回答 1

2

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

const restoreOriginalUri = async (oktaAuth, originalUri) => {
  history.replace(toRelativeUrl(originalUri || '/', window.location.origin));
};
于 2021-10-20T17:12:43.193 回答