Skip to content

Commit 0551c8a

Browse files
authored
Merge pull request #2 from isotoma/NGW-1086
NGW-1086 LinkedIn SSO - doesn't populate name even though it's avail…
2 parents 9764c11 + 6cb2671 commit 0551c8a

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/linkedin.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const getApiEndpoints = (
1414
apiBaseUrl = LINKEDIN_API_URL,
1515
loginBaseUrl = LINKEDIN_LOGIN_URL
1616
) => ({
17-
userDetails: `${apiBaseUrl}/v2/me`,
17+
userDetails: `${apiBaseUrl}/v2/me?projection=(id,localizedLastName,localizedFirstName,profilePicture(displayImage~:playableStreams))`,
1818
userEmails: `${apiBaseUrl}/v2/clientAwareMemberHandles?q=members&projection=(elements*(primary,type,handle~))`,
1919
oauthToken: `${apiBaseUrl}/oauth/v2/accessToken`,
2020
oauthAuthorize: `${loginBaseUrl}/oauth/v2/authorization`,
@@ -40,7 +40,7 @@ const check = response => {
4040
);
4141
};
4242

43-
const linkedinGet = (url, accessToken) =>
43+
const linkedinGet = (url, accessToken) =>
4444
axios({
4545
method: 'get',
4646
url,
@@ -59,7 +59,7 @@ module.exports = (apiBaseUrl, loginBaseUrl) => {
5959
)}&state=${state}&response_type=${response_type}&redirect_uri=${COGNITO_REDIRECT_URI}`;
6060
},
6161
getUserDetails: accessToken =>
62-
linkedinGet(urls.userDetails, accessToken).then(check),
62+
linkedinGet(urls.userDetails, accessToken).then(check),
6363
getUserEmails: accessToken =>
6464
linkedinGet(urls.userEmails, accessToken).then(check),
6565
getToken: (code, state) => {

src/openid.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@ const getUserInfo = accessToken =>
1616
// https://docs.microsoft.com/en-us/linkedin/shared/integrations/people/profile-api?context=linkedin/consumer/context
1717
// and
1818
// https://docs.microsoft.com/en-us/linkedin/shared/references/v2/profile/lite-profile
19+
const picture = userDetails.profilePicture["displayImage~"]?.elements[1]?.identifiers[0]?.identifier
1920
const claims = {
2021
sub: `${userDetails.id}`, // OpenID requires a string
21-
name: `${userDetails.firstName.localized} ${userDetails.lastName.localized}`,
22+
firstName: `${userDetails.localizedFirstName}`,
23+
lastName: `${userDetails.localizedLastName}`,
24+
picture: picture,
2225
};
2326
logger.debug('Resolved claims: %j', claims, {});
2427
return claims;
@@ -113,7 +116,9 @@ const getConfigFor = host => ({
113116
display_values_supported: ['page', 'popup'],
114117
claims_supported: [
115118
'sub',
116-
'name',
119+
'firstName',
120+
'lastName',
121+
'picture',
117122
'email',
118123
'email_verified',
119124
]

0 commit comments

Comments
 (0)