Archive/꼼꼼한 재은씨 시리즈

토큰 갱신과 OAuth 2.0 인증

lgvv 2021. 4. 24. 01:37

토큰에는 크게 액세스 토큰과 리프레시 토큰 두 가지로 나뉜다.

액세스 토큰은 API 호출 시 인증을 위한 용도로 사용하고,

리프레시 토큰은 앤세스 토큰 만료 시 갱신을 위해 사용한다.

 

누군가는 리프레시 토큰 대신 로그인 창을 띄워 새로 로그인하도록 처리하면 도지 않냐고 반문할지도 ㅁ르지만, 모바일 기기에서는 사용자가 매번 로그인 하는 것은 무척 피곤한 일이다.

 

OAuth 2.0 인증 표준 역시 모바일에서의 불편함을 잘 이해하고 있기 때문에, 가급적 로그인 하는 경우를 줄이려고 한다.

그래서 인증에 꼭 필요하지만 수명이 짧은 액세스 토큰과 

액세스 토큰을 갱신하는 것 외에는 아무것도 하지 않지만 수명이 긴 리프레시 토큰으로 나누어 관리하도록 하고 있다.

 

토큰 관계를 간단히 정리해 보자면

1. 액세스 토큰은 API호출에 사용되며, 유효 기간이 짧다.

2. 리프레시 토큰은 액세스 토큰을 갱신하는 데에 사용되며, 유효기간이 없다.

3. 리프레시 토큰으로 액세스 토큰을 갱신하면 새로운 액세스 토큰이 발급되지만, 리프레시 토큰은 유지된다.

4. 로그아웃하면 리프레시 토큰과 액세스 토큰이 모두 만료된다.

5. 로그인하면 기존의 리프레시 토큰과 액세스 토큰은 모두 만료되고, 새로운 토큰이 발급된다.

 

이들 토큰의 발급 관계와 로그인/로그아웃을 통한 토큰 만료를 이용하면 스마트폰을 분실해도 대처하기가 쉽다. 새로운 디바이스에서 앱을 설치하고 로그인해 버리면 더 이상 기존 앱에서는 접속할 수 없게 되기 때문이다.

아이디/비번이 저장되어 있는 것도 아니기 때문에 기존 앱에서 로그인할 수도 없으며 패스워드를 변경할 필요도 없다.

OAuth 2.0 표준에서 정보를 획득하는 과정