Skip to content

[be]기술회고

light edited this page Aug 19, 2023 · 1 revision

github email private 일때 OAuth 이메일 요청

oauthapp 은 깃허브 이메일이 private면 OAuth 의 https://api.github.com/user의 요청으로 email 정보를 받아 올 수 없었습니다. githubapp으로 변경 후https://api.github.com/user/emails요청을 통해 이메일이 private 인 유저의 이메일도 받아 올 수 있게 하였습니다.

jwt 로그인 과정

  1. Jwt 라이브러리를 이용하여 토큰을 생성한다. 시크릿 키를 통해 암호화된 유효기간이 짧은 엑세스토큰과 유효 기간이 긴 리프레쉬 토큰을 생성하여 클라이언트에 전달한다.

  2. 클라이언트는 엑세스토큰과 리프레시 토큰을 로컬 스토리지에 저장하고 서버는 리프레시 토큰을 해당 토큰의 claim에 넣은 userId 와 함께 데이터 베이스에 저장한다.

  3. api 요청시 서버의 필터 단에서 토큰을 검증하고 유효 할 경우 요청에 성공하고 토큰이 유효하지 않으면 토큰 관련 예외를 발생시켜 요청에 실패하게 된다.

  4. 만료 시간이 지난 토큰으로 응답을 했을 때 리프레시 토큰을 통해 엑세스 토큰을 재발급 시켜준다.

    엑세스 토큰 재발급 과정

    클라이언트에서 가지고 있던 리프레시 토큰으로 서버에 엑세스 토큰 재발급을 요청하고 해당 토큰이 데이터베이스에 있는지 확인 후 엑세스 토큰을 생성한다.

🎬 기능 데모

Introduce

API

Database

기술 회고

Clone this wiki locally