@@ -53,6 +53,7 @@ async def authorize(self, client: OAuthClientInformationFull, params: Authorizat
5353 redirect_uri_provided_explicitly = params .redirect_uri_provided_explicitly ,
5454 expires_at = time .time () + 300 ,
5555 scopes = params .scopes or ["read" , "write" ],
56+ subject = "test-user" ,
5657 )
5758 self .auth_codes [code .code ] = code
5859
@@ -79,6 +80,7 @@ async def exchange_authorization_code(
7980 client_id = client .client_id ,
8081 scopes = authorization_code .scopes ,
8182 expires_at = int (time .time ()) + 3600 ,
83+ subject = authorization_code .subject ,
8284 )
8385
8486 self .refresh_tokens [refresh_token ] = access_token
@@ -108,6 +110,7 @@ async def load_refresh_token(self, client: OAuthClientInformationFull, refresh_t
108110 client_id = token_info .client_id ,
109111 scopes = token_info .scopes ,
110112 expires_at = token_info .expires_at ,
113+ subject = token_info .subject ,
111114 )
112115
113116 return refresh_obj
@@ -141,6 +144,7 @@ async def exchange_refresh_token(
141144 client_id = client .client_id ,
142145 scopes = scopes or token_info .scopes ,
143146 expires_at = int (time .time ()) + 3600 ,
147+ subject = refresh_token .subject ,
144148 )
145149
146150 self .refresh_tokens [new_refresh_token ] = new_access_token
@@ -169,6 +173,7 @@ async def load_access_token(self, token: str) -> AccessToken | None:
169173 client_id = token_info .client_id ,
170174 scopes = token_info .scopes ,
171175 expires_at = token_info .expires_at ,
176+ subject = token_info .subject ,
172177 )
173178
174179 async def revoke_token (self , token : AccessToken | RefreshToken ) -> None :
@@ -832,6 +837,7 @@ async def test_authorization_get(
832837 assert auth_info .client_id == client_info ["client_id" ]
833838 assert "read" in auth_info .scopes
834839 assert "write" in auth_info .scopes
840+ assert auth_info .subject == "test-user"
835841
836842 # 6. Refresh the token
837843 response = await test_client .post (
@@ -852,6 +858,10 @@ async def test_authorization_get(
852858 assert new_token_response ["access_token" ] != access_token
853859 assert new_token_response ["refresh_token" ] != refresh_token
854860
861+ refreshed_auth_info = await mock_oauth_provider .load_access_token (new_token_response ["access_token" ])
862+ assert refreshed_auth_info
863+ assert refreshed_auth_info .subject == "test-user"
864+
855865 # 7. Revoke the token
856866 response = await test_client .post (
857867 "/revoke" ,
0 commit comments