wr: refresh token관련 수정
This commit is contained in:
@@ -19,24 +19,22 @@ const AuthWrapper = ({ children }: { children: React.ReactNode }) => {
|
||||
const { userInfo, setUserInfo } = useUserStore((state) => state);
|
||||
|
||||
async function authCheck() {
|
||||
// 현재 페이지가 로그인 페이지이면 authCheck(쿠키점검) 안함.
|
||||
if (isAtLoginRedirectUrl(LOGIN_PAGE_URL)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const userId = getCookie(AUTH_USER_ID);
|
||||
if (!userId) {
|
||||
if (!userId) { // token_id 가 없으면 로그인 페이지로 이동
|
||||
throw new Error("Missing required authentication tokens");
|
||||
}
|
||||
|
||||
const token = getCookie(CLAIM_NAME);
|
||||
if (!token || tokenManager.isExpiredToken()) {
|
||||
await LoginApi.silentRefresh();
|
||||
}
|
||||
if (userInfo) return;
|
||||
|
||||
const response = await client.get<IUserInfo>(
|
||||
`${ENDPOINT.USER_SERVICE.USERS}/info/me`,
|
||||
);
|
||||
if (!userInfo) setUserInfo(response.data);
|
||||
setUserInfo(response.data);
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
@@ -47,7 +45,7 @@ const AuthWrapper = ({ children }: { children: React.ReactNode }) => {
|
||||
return;
|
||||
}
|
||||
|
||||
tokenManager.restoreRefreshTimer(() => LoginApi.silentRefresh());
|
||||
tokenManager.setupRefreshTimer(() => LoginApi.silentRefresh());
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
@@ -113,40 +113,6 @@ export class TokenManager {
|
||||
}, refreshDelay);
|
||||
}
|
||||
|
||||
public restoreRefreshTimer(callback: () => Promise<void>): void {
|
||||
if (this.refreshTimer) {
|
||||
clearTimeout(this.refreshTimer);
|
||||
this.refreshTimer = null;
|
||||
}
|
||||
|
||||
const remainingMs = this.getRemainingMsFromToken(CLAIM_NAME);
|
||||
if (remainingMs === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (remainingMs <= 0) {
|
||||
callback().catch((error) => {
|
||||
this.handleRefreshFailure(
|
||||
error,
|
||||
"Silent refresh failed during restore:",
|
||||
);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (remainingMs <= TokenManager.REFRESH_BUFFER_MS) {
|
||||
callback().catch((error) => {
|
||||
this.handleRefreshFailure(
|
||||
error,
|
||||
"Silent refresh failed during restore:",
|
||||
);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
this.setupRefreshTimer(callback);
|
||||
}
|
||||
|
||||
public clearAuthToken(): void {
|
||||
if (this.refreshTimer) {
|
||||
clearTimeout(this.refreshTimer);
|
||||
|
||||
Reference in New Issue
Block a user