You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Okta登录后跳转至Okta控制台而非应用首页问题排查

问题:Okta登录后跳转至Okta控制台而非应用首页

我刚开始学习Okta认证相关技术,在我的应用中使用Okta登录后,页面会跳转至Okta控制台而非应用首页。已确认前端和后端完成认证并返回token,但怀疑是Okta控制台中缺少某个配置步骤导致跳转异常。

前端代码

"use client";

import userAuthCookie from "@/browsers/cookies/userAuthCookie";
import userAuthLocalStorage from "@/browsers/local-storage/userAuthLocalStorage";
import { AUTH_PROVIDER_TYPE } from "@/constants/auth";
import { API_BASE_URL } from "@/constants/environments";
import { oktaSDK, oktaSettings } from "@/constants/okta";
import ROUTES from "@/constants/paths";
import executeAsync from "@/helpers/async-helpers/executeAsync";
import apiClient from "@/http/instances/apiClient";
import type { UserAuthData } from "@/types";
import { useEffect, useState } from "react";

const storeAuthData = (data: UserAuthData) => {
  userAuthCookie.set(data);
  userAuthLocalStorage.set(data, true);
};

const navigateToHome = () => {
  if (typeof window === "undefined") return;
  window.location.replace(ROUTES.home);
};

const navigateToLoginPage = () => {
  if (typeof window === "undefined") return;
  window.location.replace(ROUTES.login);
};

export default function FetchOktaTokenAndRedirect({
  code,
  state,
}: {
  code?: string;
  state?: string;
}) {
  const [isComponentMounted, setComponentMounted] = useState(false);

  useEffect(() => {
    if (!isComponentMounted) {
      setComponentMounted(true);
      return;
    }
    if (!code || !state) return;

    const retrieveOktaAuthAndStoreData = async () => {
      const [prepareError, tokenSettings] = await executeAsync(
        oktaSDK.token.prepareTokenParams()
      );

      if (prepareError || !tokenSettings) {
        return;
      }

      const [tokenError, authResponse] = await executeAsync(
        apiClient.post(`${API_BASE_URL}/login-with-okta`, {
          redirect_uri: oktaSettings.oidc.redirectUri,
          code_verifier: tokenSettings.codeVerifier,
          code: code,
        })
      );

      if (tokenError || !authResponse?.data?.data?.token) {
        navigateToLoginPage();
        return;
      }

      const userAuthData: UserAuthData = {
        provider: AUTH_PROVIDER_TYPE.OKTA,
        ssoAccessToken: "",
        accessToken: authResponse?.data?.data?.token,
        refreshToken: "",
        expiredIn: 1924556038,
      };

      storeAuthData(userAuthData);
      navigateToHome();
    };

    retrieveOktaAuthAndStoreData();
  }, [isComponentMounted, code, state]);

  return <></>;
}

Okta控制台配置截图

Okta应用常规设置
Okta登录重定向URI配置
Okta授权服务器配置

内容的提问来源于stack exchange,提问作者do hai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 08:30:14