로그아웃 시 WebView 창/에러 페이지 노출 방지 (오프스크린 end_session)

- LoginWindow.EndSessionAsync 추가: 1×1 화면 밖 WebView2로 end_session을 수행해
  로그아웃 시 창이나 네비게이션 에러 페이지(ERR_ABORTED 등)가 보이지 않게 함.
  post_logout_redirect_uri 복귀를 NavigationStarting에서 가로채 종료하고,
  복귀를 못 가로채도 timeout 후 조용히 반환.
- SsoClient.LogoutAsync: 보이는 AuthenticateAsync 대신 EndSessionAsync 사용.
- BaronSSO.SignOutAsync: CurrentUser가 null이면 파일에서 로드 후 로그아웃.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-17 12:11:14 +09:00
parent dd2c4e4975
commit f178d69a99
3 changed files with 80 additions and 15 deletions

View File

@@ -119,6 +119,9 @@ namespace BaronSoftware.SSO
{
try
{
if (CurrentUser == null)
CurrentUser = UserInfo.FromSsoFile();
//SSO 서버 세션 종료(RP-Initiated Logout) + 로컬 WebView 세션 쿠키 정리
UserInfo.Clear();
await client.LogoutAsync(CurrentUser?.IdToken);
@@ -129,6 +132,7 @@ namespace BaronSoftware.SSO
}
}
private async Task<bool> CheckConnection()
{
try