토큰 기반 인증구현

조회수 2942회

안녕하세요.

현재 api 서버를 설계하고있습니다.

토큰기반 인증을 구현하고있는데요.

인증을 하게 될때 jwt토큰과 refresh토큰을 같이 리턴해주고 있는데요.

인증논리가 만약 인가가 필요한 자원에 요청을 하게된다면, 토큰이 만료가 되었을때

특정 응답코드를 리턴해서 이를 클라에서 인식하게해서 클라 스토리지쪽에서 가지고있던 refresh 토큰을 이용하여 또다시 토큰자체를 갱신해주는 url로 요청을 해서 새로운 access 토큰을 얻은 다음 다시 원래 목적으로 했던 인가가 필요했던 자원으로 다시 요청하는 순서가 맞나요?

또한 현재 인증토큰 만료시간은 30분정도로 잡았는데, refresh token자체의 만료시간은 보통 얼마정도로 잡는지 궁금합니다!

도움을 주시면 감사드리겠습니다!

1 답변

  • accessToken과 refreshToken으로 설계를 한 적이 있는데요. 저는 다음과 같은 구조를 이용했습니다.

    accessToken 만료가 하루였구요. refreshToken의 만료는 30일 이었습니다.

    • accessToken이 만료되더라도 refreshToken이 있으면 accessToken을 다시 발급합니다.
    • refreshToken이 만료되면 accessToken을 재발급하지 않습니다.
    • refreshToken의 만료 7일 전부터 만료일사이에 로그인하면 refreshToken을 발급합니다.
    • 이렇게 하면 한 번 로그인하면 한 달간은 자동 로그인할 수 있습니다. 또 매일 로그인한다면 계속 자동 로그인이 유지됩니다.
    • 친절한 답변 감사드립니다.! 그렇다면 인가가 필요한 자원에 요청할때 accessToken과 refreshToken을 항상 같이 넣어 전송해주셨나요?? 김진혁 2017.1.3 11:42
    • 거기까지는 생각이 안나네요... 로그인 api와 자원 요청 api가 따로 있었어서요. 로그인 실패하면 refreshToken을 이용했던것 같습니다. 매번 둘을 넣어서 보내지는 않았던것 같네요. 정토드 2017.1.3 14:03

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)