4040
4141if TYPE_CHECKING :
4242 from supertokens_python .querier import Querier
43- from supertokens_python .recipe .thirdparty .interfaces import ProviderConfig
43+ from supertokens_python .recipe .thirdparty .provider import ProviderConfig
4444 from .utils import MultitenancyConfig
4545
4646from supertokens_python .querier import NormalisedURLPath
@@ -91,6 +91,8 @@ async def get_tenant(
9191 ) -> GetTenantOkResult :
9292 from supertokens_python .recipe .thirdparty .provider import (
9393 ProviderConfig ,
94+ UserInfoMap ,
95+ UserFields ,
9496 ProviderClientConfig ,
9597 )
9698
@@ -102,6 +104,23 @@ async def get_tenant(
102104
103105 providers : List [ProviderConfig ] = []
104106 for p in res ["thirdParty" ]["providers" ]:
107+ user_info_map : Optional [UserInfoMap ] = None
108+ if "userInfoMap" in p :
109+ map_from_payload = p ["userInfoMap" ].get ("fromIdTokenPayload" , {})
110+ map_from_api = p ["userInfoMap" ].get ("fromUserInfoAPI" , {})
111+ user_info_map = UserInfoMap (
112+ UserFields (
113+ map_from_payload .get ("userId" ),
114+ map_from_payload .get ("email" ),
115+ map_from_payload .get ("emailVerified" ),
116+ ),
117+ UserFields (
118+ map_from_api .get ("userId" ),
119+ map_from_api .get ("email" ),
120+ map_from_api .get ("emailVerified" ),
121+ ),
122+ )
123+
105124 providers .append (
106125 ProviderConfig (
107126 third_party_id = p ["thirdPartyId" ],
@@ -124,19 +143,19 @@ async def get_tenant(
124143 token_endpoint = p .get ("tokenEndpoint" ),
125144 token_endpoint_body_params = p .get ("tokenEndpointBodyParams" ),
126145 user_info_endpoint = p .get ("userInfoEndpoint" ),
127- user_info_endpoint_query_params = p .get ("userInfoEndpointQueryParams" ),
146+ user_info_endpoint_query_params = p .get (
147+ "userInfoEndpointQueryParams"
148+ ),
128149 user_info_endpoint_headers = p .get ("userInfoEndpointHeaders" ),
129150 jwks_uri = p .get ("jwksUri" ),
130151 oidc_discovery_endpoint = p .get ("oidcDiscoveryEndpoint" ),
131- user_info_map = p . get ( "userInfoMap" ) ,
152+ user_info_map = user_info_map ,
132153 require_email = p .get ("requireEmail" ),
133- validate_id_token_payload = p . get ( "validateIdTokenPayload" ) ,
134- generate_fake_email = p . get ( "generateFakeEmail" ) ,
154+ validate_id_token_payload = None ,
155+ generate_fake_email = None ,
135156 )
136157 )
137158
138- # /t1/recipe/multitenancy/tenant
139-
140159 return GetTenantOkResult (
141160 emailpassword = EmailPasswordConfig (res ["emailPassword" ]["enabled" ]),
142161 passwordless = PasswordlessConfig (res ["passwordless" ]["enabled" ]),
@@ -153,6 +172,8 @@ async def list_all_tenants(
153172 from supertokens_python .recipe .thirdparty .provider import (
154173 ProviderConfig ,
155174 ProviderClientConfig ,
175+ UserFields ,
176+ UserInfoMap ,
156177 )
157178
158179 response = await self .querier .send_get_request (
@@ -165,6 +186,23 @@ async def list_all_tenants(
165186 for tenant in response ["tenants" ]:
166187 providers : List [ProviderConfig ] = []
167188 for p in tenant ["thirdParty" ]["providers" ]:
189+ user_info_map : Optional [UserInfoMap ] = None
190+ if "userInfoMap" in p :
191+ map_from_payload = p ["userInfoMap" ].get ("fromIdTokenPayload" , {})
192+ map_from_api = p ["userInfoMap" ].get ("fromUserInfoAPI" , {})
193+ user_info_map = UserInfoMap (
194+ UserFields (
195+ map_from_payload .get ("userId" ),
196+ map_from_payload .get ("email" ),
197+ map_from_payload .get ("emailVerified" ),
198+ ),
199+ UserFields (
200+ map_from_api .get ("userId" ),
201+ map_from_api .get ("email" ),
202+ map_from_api .get ("emailVerified" ),
203+ ),
204+ )
205+
168206 providers .append (
169207 ProviderConfig (
170208 third_party_id = p ["thirdPartyId" ],
@@ -193,7 +231,7 @@ async def list_all_tenants(
193231 user_info_endpoint_headers = p ["userInfoEndpointHeaders" ],
194232 jwks_uri = p ["jwksUri" ],
195233 oidc_discovery_endpoint = p ["oidcDiscoveryEndpoint" ],
196- user_info_map = p [ "userInfoMap" ] ,
234+ user_info_map = user_info_map ,
197235 require_email = p ["requireEmail" ],
198236 validate_id_token_payload = p ["validateIdTokenPayload" ],
199237 generate_fake_email = p ["generateFakeEmail" ],
0 commit comments