forked from baron/baron-sso
devfront 개발모드 unkown로그인 제거
This commit is contained in:
@@ -2,22 +2,26 @@ import { useEffect, useState } from "react";
|
||||
import { useAuth } from "react-oidc-context";
|
||||
import { Navigate, Outlet } from "react-router-dom";
|
||||
import { userManager } from "../../lib/auth";
|
||||
import { findPersistedOidcUser } from "../../lib/oidcStorage";
|
||||
import {
|
||||
findPersistedOidcUser,
|
||||
isValidOidcSessionUser,
|
||||
} from "../../lib/oidcStorage";
|
||||
|
||||
export default function AuthGuard() {
|
||||
const auth = useAuth();
|
||||
const hasActiveAuthUser =
|
||||
auth.isAuthenticated && isValidOidcSessionUser(auth.user);
|
||||
const [hasStoredUser, setHasStoredUser] = useState<boolean | null>(() =>
|
||||
findPersistedOidcUser() ? true : null,
|
||||
);
|
||||
const isDevelopmentMode = import.meta.env.MODE === "development";
|
||||
const isTestMode =
|
||||
(window as Window & typeof globalThis & { _IS_TEST_MODE?: boolean })
|
||||
._IS_TEST_MODE === true || navigator.webdriver === true;
|
||||
._IS_TEST_MODE === true;
|
||||
|
||||
useEffect(() => {
|
||||
let cancelled = false;
|
||||
|
||||
if (isDevelopmentMode || isTestMode) {
|
||||
if (isTestMode) {
|
||||
setHasStoredUser(true);
|
||||
return () => {
|
||||
cancelled = true;
|
||||
@@ -36,7 +40,7 @@ export default function AuthGuard() {
|
||||
.getUser()
|
||||
.then((user) => {
|
||||
if (!cancelled) {
|
||||
setHasStoredUser(Boolean(user && !user.expired));
|
||||
setHasStoredUser(isValidOidcSessionUser(user));
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
@@ -50,7 +54,7 @@ export default function AuthGuard() {
|
||||
};
|
||||
}, [isTestMode]);
|
||||
|
||||
if (isDevelopmentMode || isTestMode) {
|
||||
if (isTestMode) {
|
||||
return <Outlet />;
|
||||
}
|
||||
|
||||
@@ -76,7 +80,7 @@ export default function AuthGuard() {
|
||||
);
|
||||
}
|
||||
|
||||
if (!auth.isAuthenticated && !hasStoredUser) {
|
||||
if (!hasActiveAuthUser && !hasStoredUser) {
|
||||
return <Navigate to="/login" replace />;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user