Lined Notebook

로그인 #토큰기반인증방식(access토큰, refresh토큰) 개념 ★★★

by yjym33

토큰 기반 인증 방식(Token-Based Authentication)은 모던 웹 애플리케이션에서 사용되는 효율적이고 보안성이 높은 인증 방법 중 하나입니다. 

 

이 방식은 사용자가 로그인하면 서버에서 발급하는 토큰을 사용하여 인증을 관리합니다. 주로 액세스 토큰(Access Token)과 리프레시 토큰(Refresh Token) 두 가지 종류의 토큰을 사용합니다.


1. 액세스 토큰 (Access Token):


액세스 토큰은 사용자가 웹 애플리케이션에 로그인할 때 발급되는 짧은 수명의 토큰입니다. 이 토큰은 사용자를 인증하고 웹 애플리케이션의 보호된 리소스 또는 API에 접근할 때 사용됩니다.

동작 방식:

1. 사용자가 로그인하면 서버는 액세스 토큰을 생성하고 사용자에게 반환합니다.
2. 사용자의 HTTP 요청 헤더나 쿼리 매개변수에 액세스 토큰을 포함하여 보호된 리소스에 요청을 보냅니다.
3. 서버는 요청을 받고 액세스 토큰을 확인하여 사용자를 인증하고 요청을 처리합니다.
4. 액세스 토큰은 일반적으로 짧은 유효 기간을 가지며, 만료되면 다시 로그인해야 합니다.


2. 리프레시 토큰 (Refresh Token):


리프레시 토큰은 사용자의 인증을 지속적으로 관리하기 위한 장기간 유효한 토큰입니다. 주로 액세스 토큰이 만료되었을 때, 사용자가 다시 로그인하지 않고 새로운 액세스 토큰을 얻을 수 있도록 사용됩니다.

동작 방식:

1. 사용자가 로그인하면 서버는 액세스 토큰과 함께 리프레시 토큰을 발급합니다.
2. 액세스 토큰이 만료되면 사용자는 리프레시 토큰을 사용하여 새로운 액세스 토큰을 얻습니다.
3. 리프레시 토큰을 사용하면 사용자가 다시 로그인하지 않아도 됩니다. 이는 보안성을 유지하면서 사용자 경험을 향상시킵니다.


토큰 기반 인증 방식의 장점:


보안토큰은 짧은 유효 기간을 가지며, 리프레시 토큰을 통해 보안을 높일 수 있습니다.


확장성토큰은 서버에 저장하지 않으므로 서버 확장이 용이합니다.


분리된 인증 서버OAuth와 같은 프로토콜을 사용하면 별도의 인증 서버를 구축하여 인증을 분리할 수 있습니다.

 


토큰 기반 인증 방식의 단점:


구현 복잡성토큰 기반 인증은 구현이 복잡할 수 있으며, 액세스 토큰과 리프레시 토큰 관리가 필요합니다.


액세스 토큰 유효 기간액세스 토큰이 유효 기간 동안은 사용자의 로그인 상태를 유지할 수 있으므로, 만료 시점에 주기적인 로그인이 필요합니다.



블로그의 정보

생각보다 실천을

yjym33

활동하기