1
0
forked from baron/baron-sso

비로그인 상태 OIDC 연동 시 발생하는 인증 루프 수정

This commit is contained in:
2026-02-27 14:25:01 +09:00
parent 6482e8d3e0
commit 5859118936
2 changed files with 97 additions and 6 deletions

View File

@@ -161,7 +161,12 @@ class _LoginScreenState extends ConsumerState<LoginScreen>
final provider = pendingProvider ?? AuthTokenStore.getProvider() ?? 'ory';
try {
await AuthProxyService.checkCookieSession();
final status = await AuthProxyService.getSessionStatus(useCookie: true);
if (status != 200) {
debugPrint("[Auth] Cookie session check: No active session (status: $status)");
return;
}
if (!shouldPromoteCookieSession(
currentToken: AuthTokenStore.getToken(),
loginChallenge: loginChallenge,
@@ -242,11 +247,16 @@ class _LoginScreenState extends ConsumerState<LoginScreen>
}
try {
await AuthProxyService.checkCookieSession();
AuthTokenStore.setCookieMode(
provider: AuthTokenStore.getProvider() ?? 'ory',
);
await _acceptOidcLoginAndRedirect();
// 401 응답은 세션이 없는 정상적인 상태이므로 예외로 처리하지 않고 우아하게 중단합니다.
final status = await AuthProxyService.getSessionStatus(useCookie: true);
if (status == 200) {
AuthTokenStore.setCookieMode(
provider: AuthTokenStore.getProvider() ?? 'ory',
);
await _acceptOidcLoginAndRedirect();
} else {
debugPrint("[Auth] OIDC auto-accept: No active session (status: $status)");
}
} catch (e) {
debugPrint("[Auth] OIDC auto-accept cookie check failed: $e");
}