1
0
forked from baron/baron-sso
Files
baron-sso/docs/trouble-shooting/issue-146-remote-login.md
2026-02-04 14:33:47 +09:00

1.9 KiB

#146 원격 링크 로그인 세션/이력 불일치 대응

요약

  • Ory 링크 로그인은 실제로 /api/v1/auth/login/code/verify 또는 /api/v1/auth/login/code/verify-short 경로를 사용합니다.
  • 기존에는 verifyOnly/api/v1/auth/magic-link/verify에만 적용되어, 링크를 클릭한 기기에서 세션이 발급되는 문제가 있었습니다.
  • 인증수단 표기는 loginId 기반 추론에 의존해 SMS 요청이 Email로 표시되는 문제가 있었습니다.

원인

  • verify-only 적용 범위가 magic link에 한정되어 있었고, Ory 코드 기반 경로는 세션을 즉시 발급했습니다.
  • audit 로그의 인증수단 표기는 request_body/loginId 기반 추론만 사용했습니다.

변경 사항

1) verify-only 범위 확장

  • /api/v1/auth/login/code/verify, /api/v1/auth/login/code/verify-shortverifyOnly 지원 추가
  • verify-only일 때는 승인 상태만 저장하고 세션 발급은 Polling(Desktop)에서 수행

2) Polling 시 세션 발급 주체 정리

  • 승인 상태(status=approved)는 **요청한 기기(A)**에서만 세션 발급
  • Ory 코드 플로우는 Polling 시점에 VerifyLoginCode를 수행해 세션 생성

3) 인증수단 표기 개선

  • pendingRef 기준으로 login_method(sms/email), login_flow(code/link) 저장
  • audit 로그에 해당 메타를 기록하여 SMS/Email, 코드/링크 구분을 명확히 표시
  • verify-only 요청 로그는 타임라인에서 제외

영향 범위

  • Backend: 링크 로그인 승인/세션 발급 경로 변경
  • Front: verify-only 플래그 전달 확장
  • 문서: auth-flow/test-plan 업데이트

테스트 계획 (요약)

  • Desktop에서 링크 요청 → Mobile에서 링크 클릭(verifyOnly) → Desktop Polling으로 세션 발급
  • Mobile 단말에서 세션/로그인 이력 미생성 확인
  • 인증수단 표기(SMS/Email) 정확성 확인
  • 코드/링크 만료/재사용 시나리오 점검