기존에는 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으로 처리하자.