Django Oauth Toolkit에서 revoke_token(signout) 시 처리 방법

sig03
Apr 19, 2023

--

기존에는 access_token만으로 작업하다가 refresh_token을 활용해 access_token을 재발급 받는 로직을 추가하기로 했다. 그러면 oauth2_provider_refreshtoke 의 토큰들도 관리를 해줘야 하는데 revoke_token=signout 시 어떻게 처리되나 테스트를 해 봤다.


//access_token으로 revoke_token
POST http://<domain>/o/revoke_token/ HTTP/1.1
Content-Type: application/x-www-form-urlencoded

token=<access_token>
&client_id=<client_id>
&client_secret=<client_secret>


//결과
//oauth2_provider_accesstoken: 삭제됨
//oauth2_provider_refreshtoken: 맵핑키인 access_token_id=null 업데이트 됨
//refresh_token으로 revoke_token 
POST http://<domain>/o/revoke_token/ HTTP/1.1
Content-Type: application/x-www-form-urlencoded

token=<refresh_token>
&client_id=<client_id>
&client_secret=<client_secret>

//결과
//oauth2_provider_accesstoken: 삭제됨
//oauth2_provider_refreshtoken: 맵핑키인 access_token_id=null 업데이트 됨, revoked=now() 업데이트 됨

결론: revoke_token 시 refresh_token으로 처리하자.

--

--

sig03
sig03

No responses yet