JWT 인증 관련 자료들 #100
Replies: 2 comments
-
사용자가 로그인하면 일반적으로 클라이언트에 액세스 토큰과 리프레쉬 토큰을 모두 반환합니다. 액세스 토큰은 인증 및 권한 부여 목적으로 사용되는 반면 리프레쉬 토큰은 현재 액세스 토큰이 만료될 때 새 액세스 토큰을 요청하는 데 사용됩니다. 이렇게 하면 액세스 토큰이 만료된 후 사용자가 다시 로그인할 필요가 없습니다. 대신 리프레쉬 토큰을 사용하여 새 액세스 토큰을 얻고 보호된 리소스에 계속 액세스할 수 있습니다. |
Beta Was this translation helpful? Give feedback.
-
Access Token의 재발급 방법 보통 Refresh Token은 로그인 성공시 발급되며 저장소에 저장하여 관리된다. Access Token이 만료되어 재발급이 진행되면 다음의 과정을 통해 재발급이 된다. RefreshToken을 AccessToken 처럼 HTTP 헤더의 Authorization 속성으로 전달 받는다. RTK는 /account/reissue URI 접근에만 사용 가능하며, Redis 인메모리에서 사용자의 정보 조회를 위해 payload에서 유저 email를 얻는 용도로만 사용된다. 따라서 RTK로 다른 URI는 접근할 수 없다. 이를 위해 token Subject에 type 필드가 존재하는 것이다. |
Beta Was this translation helpful? Give feedback.
-
JWT Refresh Token이 필요한 이유
https://velog.io/@dyparkkk/spring-sequrity-jwt-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0access-token-refresh-token
Redis로 JWT Refresh Token 관리하기
https://bestinu.tistory.com/54
https://sol-devlog.tistory.com/22
Refresh Token 적용시 JWT 시나리오
로그인을 시도합니다. 이때 유저의 ID와 Password를 서버 DB와 대조한 뒤, 올바른 유저라면 Access Token + Refresh Token을 발급해줍니다.
모든 요청(request)의 Header에 Access Token을 넣어서 요청을 보냅니다. 서버는 요청을 처리하기 전 앞단에서 해당 토큰을 통한 인증을 먼저 확인하게 됩니다.
2-1) Access Token을 통한 인증이 정상적으로 작동했다면, 요청된 자원을 클라이언트에게 반환해줍니다.
2-2) Access Token을 통한 인증이 실패할 경우,
리프레시 토큰을 발급하기 전, 리프레시 토큰이 어떻게 사용되는지 알아보자.
각 토큰의 이름이 뜻하는 대로, 어세스 토큰은 접근에 관여하는 토큰이고 리프레시 토큰은 재발급에 관여하는 토큰이다.
JWT는 발급한 후, 삭제가 불가능하기 때문에 접근에 관여하는 토큰은 유효시간을 길게 부여할 수 없다. 하지만 자동 로그인 혹은 로그인 유지를 위해서는 유효시간이 긴 토큰이 필요하다. 이때 사용되는 것이 Refresh Token이다.
Access Token 재발급은 크게 2가지 방법으로 볼 수 있다.
여기서는 2번의 방법으로 진행된다.
Beta Was this translation helpful? Give feedback.
All reactions