로그인 시작
provider authorization URL을 만들고 state와 redirect_uri를 서버 정책에 맞게 저장한다.
redirect_uri 불일치는 provider가 즉시 거부한다소셜 로그인 버튼을 누른 뒤 콜백을 받는 장면만 보면 OAuth가 단순해 보인다. 실제로는 state로 CSRF를 막고, authorization code를 서버에서 토큰으로 교환하며, provider 계정과 내부 사용자를 안전하게 연결해야 한다.
provider authorization URL을 만들고 state와 redirect_uri를 서버 정책에 맞게 저장한다.
redirect_uri 불일치는 provider가 즉시 거부한다사용자는 provider에서 권한 범위와 계정을 선택한다.
scope는 최소한으로 요청한다code가 왔는지, state가 저장값과 같은지, error 파라미터가 있는지 먼저 확인한다.
state 실패는 인증 시도로 처리하지 않는다서버가 code를 access token으로 교환하고 provider profile을 조회한다.
브라우저에 client secret을 노출하지 않는다provider id, email 검증 상태, 기존 계정 병합 정책에 따라 내부 사용자를 찾거나 만든다.
email만 믿고 자동 병합하면 계정 탈취 위험이 있다