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,12 @@ 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 ()],
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" ], Form ()
73+ ] = "refresh_token" , # noqa: S107
74+ client_id : Annotated [str , Form ()] = "myDIRACClientID" ,
7175) -> str :
7276 """Revoke a refresh token."""
7377 # Test the client_id
@@ -77,9 +81,7 @@ async def revoke_refresh_token_by_refresh_token(
7781 )
7882
7983 try :
80- await revoke_refresh_token_by_refresh_token_bl (
81- auth_db , None , refresh_token , settings
82- )
84+ await revoke_refresh_token_by_refresh_token_bl (auth_db , None , token , settings )
8385 except DecodeError :
8486 logger .warning ("Someone tried to revoke its token but failed." )
8587
0 commit comments