@@ -54,6 +54,7 @@ async def authorize(self, client: OAuthClientInformationFull, params: Authorizat
5454 redirect_uri_provided_explicitly = params .redirect_uri_provided_explicitly ,
5555 expires_at = time .time () + 300 ,
5656 scopes = params .scopes or ["read" , "write" ],
57+ subject = "test-user" ,
5758 )
5859 self .auth_codes [code .code ] = code
5960
@@ -80,6 +81,7 @@ async def exchange_authorization_code(
8081 client_id = client .client_id ,
8182 scopes = authorization_code .scopes ,
8283 expires_at = int (time .time ()) + 3600 ,
84+ subject = authorization_code .subject ,
8385 )
8486
8587 self .refresh_tokens [refresh_token ] = access_token
@@ -109,6 +111,7 @@ async def load_refresh_token(self, client: OAuthClientInformationFull, refresh_t
109111 client_id = token_info .client_id ,
110112 scopes = token_info .scopes ,
111113 expires_at = token_info .expires_at ,
114+ subject = token_info .subject ,
112115 )
113116
114117 return refresh_obj
@@ -142,6 +145,7 @@ async def exchange_refresh_token(
142145 client_id = client .client_id ,
143146 scopes = scopes or token_info .scopes ,
144147 expires_at = int (time .time ()) + 3600 ,
148+ subject = refresh_token .subject ,
145149 )
146150
147151 self .refresh_tokens [new_refresh_token ] = new_access_token
@@ -170,6 +174,7 @@ async def load_access_token(self, token: str) -> AccessToken | None:
170174 client_id = token_info .client_id ,
171175 scopes = token_info .scopes ,
172176 expires_at = token_info .expires_at ,
177+ subject = token_info .subject ,
173178 )
174179
175180 async def revoke_token (self , token : AccessToken | RefreshToken ) -> None :
@@ -783,6 +788,7 @@ async def test_authorization_get(
783788 assert auth_info .client_id == client_info ["client_id" ]
784789 assert "read" in auth_info .scopes
785790 assert "write" in auth_info .scopes
791+ assert auth_info .subject == "test-user"
786792
787793 # 6. Refresh the token
788794 response = await test_client .post (
@@ -803,6 +809,10 @@ async def test_authorization_get(
803809 assert new_token_response ["access_token" ] != access_token
804810 assert new_token_response ["refresh_token" ] != refresh_token
805811
812+ refreshed_auth_info = await mock_oauth_provider .load_access_token (new_token_response ["access_token" ])
813+ assert refreshed_auth_info
814+ assert refreshed_auth_info .subject == "test-user"
815+
806816 # 7. Revoke the token
807817 response = await test_client .post (
808818 "/revoke" ,
0 commit comments