개발 일지/Spring

[Spring Security] 토큰 기반 인증 절차

미숫가루설탕많이 2023. 3. 21. 20:34

 토큰 기반 인증 절차는 크게 다음과 같은 단계로 이루어진다.

 

  1. 클라이언트가 ID / Password를 서버로 전송하여 로그인 요청을 한다.

  2. 서버는 ID와 Password를 검증하고, 유효한 사용자인 경우 Access Token과 Refresh Token을 발급한다. Refresh Token을 이용해 새로운 Access Token을 생성할 것이므로 두 종류의 토큰이 같은 정보를 담을 필요는 없다.

  3. 토큰을 클라이언트에게 전송하면 클라이언트는 토큰을 저장한다. 저장하는 위치는 Local Storage, Session Storage, Cookie 등이 될 수 있다.

  4. 클라이언트는 인증이 필요한 API 요청 시, HTTP Header(Authorization Header) 또는 쿠키에 이전에 발급받은 Access Token을 포함하여 요청한다.

  5. 서버는 Access Token의 유효성을 검증하고, 유효한 토큰일 경우 요청된 API를 처리하여 결과를 반환한다. 만약 유효하지 않은 토큰일 경우 클라이언트는 다시 로그인을 요청해야 한다.

 

 

 

 

액세스 토큰 갱신

 

 Access Token은 일정 시간이 지나면 만료되므로, 만료 전에 서버에 새로운 Access Token을 요청해야 한다. 이때 사용되는 것이 Refresh Token이며, 클라이언트는 만료된 Access Token 대신 Refresh Token을 서버에 전송한다.

 

 서버는 Refresh Token의 유효성을 검증하고, 유효한 토큰일 경우 새로운 액세스 토큰을 발급하여 클라이언트에 전달한다.

 

 

 

 

로그아웃

 

 클라이언트는 로그아웃 요청 시, Access Token과 Refresh Token을 서버로 전송한다. 서버는 해당 토큰들을 무효화하고 클라이언트에서도 삭제하여 인증이 불가능하도록 한다.

 

 

 

 


 

 인증된 클라이언트는 유효한 액세스 토큰을 소유하고 서버는 이를 검증하여 클라이언트의 요청에 대한 권한 부여를 결정한다.

 

 이러한 토큰 기반 인증 절차를 통해서 클라이언트와 서버 간의 인증과 권한 부여가 보다 안전하고 효율적으로 이루어지며, 클라이언트와 서버 간의 통신도 간편해진다.

'개발 일지 > Spring' 카테고리의 다른 글

[Spring WebFlux] Reactive Programming  (0) 2023.03.28
[Spring WebFlux] Reactive System  (0) 2023.03.27
[Spring Security] JWT  (0) 2023.03.20
[Spring Security] 권한 부여 처리 흐름  (0) 2023.03.17
[Spring MVC] Spring Security  (0) 2023.03.17