Skip to content

Conversation

@junstory
Copy link
Contributor

@junstory junstory commented Feb 12, 2024

JWT RefreshToken 추가 및 코드 정리

구현 내용

  • 로그인 로직 수정
  • jwt refresh토큰 구현
  • DB oauthid 테이블에 저장되는 값 변경.
    (기존: access_token에 플랫폼 별 유저 id 저장 -> 변경: id에 플랫폼 별 유저id 저장. access_token에 유저 refresh token 저장

To Reviewrs

기존에는 로그인시에 이미 존재하는 회원인지만 확인하고 토큰을 발급하는 로직이었습니다. 변경된 로직은 아래와 같습니다!

1.토큰 여부 확인(헤더에 access, refresh가 담겨 있다 가정.)
    2-1. 토큰이 없는 경우
        3-1 로그인 진행
    
    2-2.토큰에 위조, 이상 및 access와 refresh가 만료된 경우
        3-1 재로그인이 필요하다는 응답.

    2-3. access 토큰이 정상인 경우
        3-1. refresh 토큰 확인 후 만료된 경우 재발급 후 로그인
        3-2. refresh 토큰 확인 후 만료되지 않은 경우 바로 로그인

    2-4. 토큰이 만료된 경우
        3-1. refresh 토큰으로 재발급 후 로그인

관련해서 재로그인 필요, access재발급, refresh재발급 상황에 나뉘어 DTO를 return하는 tokenChecktoken(req, res)함수와

단순히 토큰만 확인 후 정상이면 data를 리턴 하는 tokenVerify(token) 함수를 만들어 둔 상태입니다.
*Controller에서 tokenCheck(req.headers['access']) 또는 tokenVerify(req) 를 사용해서 리턴 값을 가지고 에러 처리와 userId를 이용하여 service로 넘기면 좋을 것 같습니다.

다만 만들면서 생각이 든 게 프론트 분들이랑 토큰을 어떻게 넘겨서 인증할 지 얘기가 충분하지 않았던 것 같아서 당장은 사용하기 어려울 수도 있겠다 싶어서 얘기를 나누면 좋을 것 같습니다!

Check List

  • 계획한 구현이 빠짐없이 구현됐는가?
  • 오류없이 제대로 동작하는가?

@junstory junstory added the FIX 🚑 버그 수정 label Feb 12, 2024
@junstory junstory self-assigned this Feb 12, 2024
@junstory junstory linked an issue Feb 12, 2024 that may be closed by this pull request
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

FIX 🚑 버그 수정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix: JWT RefreshToken 추가 및 코드 정리

2 participants