전체적인 플로우는 다음과 같다.

  1. Client검증
    1. parameter로 받은 내용을 토대로, 등록된 Client인지, 유효한 redirectUri인지 판단한다.
    2. scope가 등록된 Client scope를 벗어나지 않는지 validate한다.
  2. 유효한 request인 경우, Redis세션에 request 정보를 저장하고, requestId를 발급한다.
  3. requestId를 쿠키에 넣어 응답하고, response를 React.js의 로그인 페이지로 redirect한다.
    1. 세션이 아닌, redis를 활용하는 이유는 redirect시 세션유지가 되지 않기 때문이다.
    2. 추후, 회원가입 및 본인인증 Flow가 덧붙여질 경우 레디스의 requestInfo에 해당 값을 저장해가며 활용할 수도 있다.

Sequence Diagram

Untitled

Untitled