Skip to content

Commit 095e4b9

Browse files
committed
adding dev-v0.18.2 tag to this commit to ensure building
1 parent adf45cf commit 095e4b9

File tree

2 files changed

+19
-58
lines changed

2 files changed

+19
-58
lines changed

html/supertokens_python/constants.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ <h1 class="title">Module <code>supertokens_python.constants</code></h1>
4242
from __future__ import annotations
4343

4444
SUPPORTED_CDI_VERSIONS = [&#34;3.0&#34;]
45-
VERSION = &#34;0.18.1&#34;
45+
VERSION = &#34;0.18.2&#34;
4646
TELEMETRY = &#34;/telemetry&#34;
4747
USER_COUNT = &#34;/users/count&#34;
4848
USER_DELETE = &#34;/user/remove&#34;

html/supertokens_python/recipe/thirdparty/providers/linkedin.html

Lines changed: 18 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ <h1 class="title">Module <code>supertokens_python.recipe.thirdparty.providers.li
7070
config = await super().get_config_for_client_type(client_type, user_context)
7171

7272
if config.scope is None:
73-
config.scope = [&#34;r_emailaddress&#34;, &#34;r_liteprofile&#34;]
73+
# https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin-v2?context=linkedin%2Fconsumer%2Fcontext#authenticating-members
74+
config.scope = [&#34;openid&#34;, &#34;profile&#34;, &#34;email&#34;]
7475

7576
return config
7677

@@ -87,31 +88,17 @@ <h1 class="title">Module <code>supertokens_python.recipe.thirdparty.providers.li
8788
}
8889

8990
raw_user_info_from_provider = RawUserInfoFromProvider({}, {})
91+
# https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin-v2?context=linkedin%2Fconsumer%2Fcontext#sample-api-response
9092
user_info = await do_get_request(
91-
&#34;https://api.linkedin.com/v2/me&#34;, headers=headers
93+
&#34;https://api.linkedin.com/v2/userinfo&#34;, headers=headers
9294
)
9395
raw_user_info_from_provider.from_user_info_api = user_info
9496

95-
email_api_url = &#34;https://api.linkedin.com/v2/emailAddress&#34;
96-
email_info: Dict[str, Any] = await do_get_request(
97-
email_api_url,
98-
query_params={&#34;q&#34;: &#34;members&#34;, &#34;projection&#34;: &#34;(elements*(handle~))&#34;},
99-
headers=headers,
100-
)
101-
102-
if email_info.get(&#34;elements&#34;) is not None and len(email_info.get(&#34;elements&#34;)) &gt; 0: # type: ignore
103-
raw_user_info_from_provider.from_user_info_api[&#34;email&#34;] = email_info.get(&#34;elements&#34;)[0].get(&#34;handle~&#34;).get(&#34;emailAddress&#34;) # type: ignore
104-
105-
raw_user_info_from_provider.from_user_info_api = {
106-
**raw_user_info_from_provider.from_user_info_api,
107-
**email_info,
108-
}
109-
11097
return UserInfo(
111-
third_party_user_id=raw_user_info_from_provider.from_user_info_api.get(&#34;id&#34;), # type: ignore
98+
third_party_user_id=raw_user_info_from_provider.from_user_info_api.get(&#34;sub&#34;), # type: ignore
11299
email=UserInfoEmail(
113100
email=raw_user_info_from_provider.from_user_info_api.get(&#34;email&#34;), # type: ignore
114-
is_verified=False,
101+
is_verified=raw_user_info_from_provider.from_user_info_api.get(&#34;email_verified&#34;), # type: ignore
115102
),
116103
)
117104

@@ -214,7 +201,8 @@ <h2 class="section-title" id="header-classes">Classes</h2>
214201
config = await super().get_config_for_client_type(client_type, user_context)
215202

216203
if config.scope is None:
217-
config.scope = [&#34;r_emailaddress&#34;, &#34;r_liteprofile&#34;]
204+
# https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin-v2?context=linkedin%2Fconsumer%2Fcontext#authenticating-members
205+
config.scope = [&#34;openid&#34;, &#34;profile&#34;, &#34;email&#34;]
218206

219207
return config
220208

@@ -231,31 +219,17 @@ <h2 class="section-title" id="header-classes">Classes</h2>
231219
}
232220

233221
raw_user_info_from_provider = RawUserInfoFromProvider({}, {})
222+
# https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin-v2?context=linkedin%2Fconsumer%2Fcontext#sample-api-response
234223
user_info = await do_get_request(
235-
&#34;https://api.linkedin.com/v2/me&#34;, headers=headers
224+
&#34;https://api.linkedin.com/v2/userinfo&#34;, headers=headers
236225
)
237226
raw_user_info_from_provider.from_user_info_api = user_info
238227

239-
email_api_url = &#34;https://api.linkedin.com/v2/emailAddress&#34;
240-
email_info: Dict[str, Any] = await do_get_request(
241-
email_api_url,
242-
query_params={&#34;q&#34;: &#34;members&#34;, &#34;projection&#34;: &#34;(elements*(handle~))&#34;},
243-
headers=headers,
244-
)
245-
246-
if email_info.get(&#34;elements&#34;) is not None and len(email_info.get(&#34;elements&#34;)) &gt; 0: # type: ignore
247-
raw_user_info_from_provider.from_user_info_api[&#34;email&#34;] = email_info.get(&#34;elements&#34;)[0].get(&#34;handle~&#34;).get(&#34;emailAddress&#34;) # type: ignore
248-
249-
raw_user_info_from_provider.from_user_info_api = {
250-
**raw_user_info_from_provider.from_user_info_api,
251-
**email_info,
252-
}
253-
254228
return UserInfo(
255-
third_party_user_id=raw_user_info_from_provider.from_user_info_api.get(&#34;id&#34;), # type: ignore
229+
third_party_user_id=raw_user_info_from_provider.from_user_info_api.get(&#34;sub&#34;), # type: ignore
256230
email=UserInfoEmail(
257231
email=raw_user_info_from_provider.from_user_info_api.get(&#34;email&#34;), # type: ignore
258-
is_verified=False,
232+
is_verified=raw_user_info_from_provider.from_user_info_api.get(&#34;email_verified&#34;), # type: ignore
259233
),
260234
)</code></pre>
261235
</details>
@@ -281,7 +255,8 @@ <h3>Methods</h3>
281255
config = await super().get_config_for_client_type(client_type, user_context)
282256

283257
if config.scope is None:
284-
config.scope = [&#34;r_emailaddress&#34;, &#34;r_liteprofile&#34;]
258+
# https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin-v2?context=linkedin%2Fconsumer%2Fcontext#authenticating-members
259+
config.scope = [&#34;openid&#34;, &#34;profile&#34;, &#34;email&#34;]
285260

286261
return config</code></pre>
287262
</details>
@@ -308,31 +283,17 @@ <h3>Methods</h3>
308283
}
309284

310285
raw_user_info_from_provider = RawUserInfoFromProvider({}, {})
286+
# https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin-v2?context=linkedin%2Fconsumer%2Fcontext#sample-api-response
311287
user_info = await do_get_request(
312-
&#34;https://api.linkedin.com/v2/me&#34;, headers=headers
288+
&#34;https://api.linkedin.com/v2/userinfo&#34;, headers=headers
313289
)
314290
raw_user_info_from_provider.from_user_info_api = user_info
315291

316-
email_api_url = &#34;https://api.linkedin.com/v2/emailAddress&#34;
317-
email_info: Dict[str, Any] = await do_get_request(
318-
email_api_url,
319-
query_params={&#34;q&#34;: &#34;members&#34;, &#34;projection&#34;: &#34;(elements*(handle~))&#34;},
320-
headers=headers,
321-
)
322-
323-
if email_info.get(&#34;elements&#34;) is not None and len(email_info.get(&#34;elements&#34;)) &gt; 0: # type: ignore
324-
raw_user_info_from_provider.from_user_info_api[&#34;email&#34;] = email_info.get(&#34;elements&#34;)[0].get(&#34;handle~&#34;).get(&#34;emailAddress&#34;) # type: ignore
325-
326-
raw_user_info_from_provider.from_user_info_api = {
327-
**raw_user_info_from_provider.from_user_info_api,
328-
**email_info,
329-
}
330-
331292
return UserInfo(
332-
third_party_user_id=raw_user_info_from_provider.from_user_info_api.get(&#34;id&#34;), # type: ignore
293+
third_party_user_id=raw_user_info_from_provider.from_user_info_api.get(&#34;sub&#34;), # type: ignore
333294
email=UserInfoEmail(
334295
email=raw_user_info_from_provider.from_user_info_api.get(&#34;email&#34;), # type: ignore
335-
is_verified=False,
296+
is_verified=raw_user_info_from_provider.from_user_info_api.get(&#34;email_verified&#34;), # type: ignore
336297
),
337298
)</code></pre>
338299
</details>

0 commit comments

Comments
 (0)