UNPKG

next-auth

Version:

Authentication for Next.js

46 lines (41 loc) 2.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = LinkedIn; function LinkedIn(options) { return { id: "linkedin", name: "LinkedIn", type: "oauth", authorization: { url: "https://www.linkedin.com/oauth/v2/authorization", params: { scope: "r_liteprofile r_emailaddress" } }, token: "https://www.linkedin.com/oauth/v2/accessToken", userinfo: { url: "https://api.linkedin.com/v2/me", params: { projection: `(id,localizedFirstName,localizedLastName,profilePicture(displayImage~digitalmediaAsset:playableStreams))` } }, async profile(profile, tokens) { var _emailData$elements, _emailData$elements$, _emailData$elements$$, _profile$profilePictu, _profile$profilePictu2, _profile$profilePictu3, _profile$profilePictu4, _profile$profilePictu5, _profile$profilePictu6; const emailResponse = await fetch("https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))", { headers: { Authorization: `Bearer ${tokens.access_token}` } }); const emailData = await emailResponse.json(); return { id: profile.id, name: `${profile.localizedFirstName} ${profile.localizedLastName}`, email: emailData === null || emailData === void 0 ? void 0 : (_emailData$elements = emailData.elements) === null || _emailData$elements === void 0 ? void 0 : (_emailData$elements$ = _emailData$elements[0]) === null || _emailData$elements$ === void 0 ? void 0 : (_emailData$elements$$ = _emailData$elements$["handle~"]) === null || _emailData$elements$$ === void 0 ? void 0 : _emailData$elements$$.emailAddress, image: (_profile$profilePictu = profile.profilePicture) === null || _profile$profilePictu === void 0 ? void 0 : (_profile$profilePictu2 = _profile$profilePictu["displayImage~"]) === null || _profile$profilePictu2 === void 0 ? void 0 : (_profile$profilePictu3 = _profile$profilePictu2.elements) === null || _profile$profilePictu3 === void 0 ? void 0 : (_profile$profilePictu4 = _profile$profilePictu3[0]) === null || _profile$profilePictu4 === void 0 ? void 0 : (_profile$profilePictu5 = _profile$profilePictu4.identifiers) === null || _profile$profilePictu5 === void 0 ? void 0 : (_profile$profilePictu6 = _profile$profilePictu5[0]) === null || _profile$profilePictu6 === void 0 ? void 0 : _profile$profilePictu6.identifier }; }, options }; }