forked from baron/baron-sso
비로그인 상태 OIDC 연동 시 발생하는 인증 루프 수정
This commit is contained in:
@@ -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");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user