전체적인 플로우는 다음과 같다.
- Client검증
- parameter로 받은 내용을 토대로, 등록된 Client인지, 유효한 redirectUri인지 판단한다.
- scope가 등록된 Client scope를 벗어나지 않는지 validate한다.
- 유효한 request인 경우, Redis세션에 request 정보를 저장하고, requestId를 발급한다.
- requestId를 쿠키에 넣어 응답하고, response를 React.js의 로그인 페이지로 redirect한다.
- 세션이 아닌, redis를 활용하는 이유는 redirect시 세션유지가 되지 않기 때문이다.
- 추후, 회원가입 및 본인인증 Flow가 덧붙여질 경우 레디스의 requestInfo에 해당 값을 저장해가며 활용할 수도 있다.
Sequence Diagram
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/40da5f1b-18ac-4691-a27f-f86a913c64ce/Untitled.png)
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/3f9fd88a-4989-465d-8f6d-b7f41e629ad8/Untitled.png)