77from __future__ import annotations
88
99import logging
10- from typing import Annotated , Any
10+ from typing import Annotated , Any , Literal
1111
12- from fastapi import Depends , HTTPException , status
12+ from fastapi import Depends , Form , HTTPException , status
1313from joserfc .errors import DecodeError
1414from typing_extensions import TypedDict
1515from uuid_utils import UUID
@@ -66,8 +66,16 @@ async def get_refresh_tokens(
6666async def revoke_refresh_token_by_refresh_token (
6767 auth_db : AuthDB ,
6868 settings : AuthSettings ,
69- refresh_token : str ,
70- client_id : str ,
69+ token : Annotated [str , Form (description = "The refresh token to revoke" )],
70+ # Unused but necessary parameter: https://datatracker.ietf.org/doc/html/rfc7009#section-2.1
71+ token_type_hint : Annotated [
72+ Literal ["access_token" , "refresh_token" ],
73+ Form (description = "Hint for the type of token being revoked" ),
74+ ] = "refresh_token" , # noqa: S107
75+ client_id : Annotated [
76+ str ,
77+ Form (description = "The client ID of the application requesting the revocation" ),
78+ ] = "myDIRACClientID" ,
7179) -> str :
7280 """Revoke a refresh token."""
7381 # Test the client_id
@@ -77,9 +85,7 @@ async def revoke_refresh_token_by_refresh_token(
7785 )
7886
7987 try :
80- await revoke_refresh_token_by_refresh_token_bl (
81- auth_db , None , refresh_token , settings
82- )
88+ await revoke_refresh_token_by_refresh_token_bl (auth_db , None , token , settings )
8389 except DecodeError :
8490 logger .warning ("Someone tried to revoke its token but failed." )
8591
0 commit comments