Để revoke một access token đang còn valid, không cho Client Application sử dụng access token đó nữa, chúng ta sẽ sử dụng token revocation endpoint. Với Authorization Server được xây dựng sử dụng Spring Authorization Server, các bạn có thể sử dụng POST request sau để revoke một access token: http://localhost:8080/oauth2/revoke.
Ví dụ bây giờ mình có một RegisteredClient như sau:
1 2 3 4 5 6 7 8 9 |
// @formatter:off RegisteredClient registeredClient1 = RegisteredClient.withId(UUID.randomUUID().toString()) .clientId("huongdanjava1") .clientSecret("{noop}123") .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_POST) .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS) .scope("accees-hello") .build(); // @formatter:on |
Lấy access token của client này, rồi gọi tới token introspection request, các bạn sẽ thấy kết quả như sau:
Bây giờ, nếu mình gọi tới request token revocation với 3 tham số trong phần body của request là token cần revoke, client_id và client_secret của access token này, các bạn sẽ thấy kết quả như sau:
Vậy là chúng ta đã revoke thành công rồi đó các bạn.
Giờ nếu các bạn gọi lại request token introspection cho access token này, các bạn sẽ thấy token invalid, như sau: