Passport-LinkedIn 是一款基于 Node.js 平台的集成了 LinkedIn 登录授权功能的 npm 包。有了 Passport-LinkedIn,开发者可以轻松地通过编写少量代码,使得网站用户可以方便地使用其 LinkedIn 账户登录到您的应用中。
在本文中,我们将详细介绍 Passport-LinkedIn npm 包的使用方法,以及如何通过它实现 LinkedIn 登录授权。除此之外,我们还将编写一些示例代码,帮助读者更好地了解如何使用 Passport-LinkedIn 包。
安装
安装 Passport-LinkedIn 包需要 Node.js 6.x 或更高版本。使用以下命令安装:
$ npm install passport-linkedin --save
Passport-LinkedIn 怎么用?
Passport-LinkedIn 是基于 Passport 身份验证框架的一个扩展包。在使用 Passport-LinkedIn 之前,需要先在应用中安装和配置 Passport 框架。如果您还没有使用过 Passport,可以先阅读 Passport 官方文档。
要使用 Passport-LinkedIn,首先要对其进行初始化并配置 strategy
。 Passport-LinkedIn 的初始化和配置方法如下所示:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ---------------- - -------------------------------------- ----- ------------------ - ----------------- ----- ---------------------- - --------------------- ----- --------------------- - ----------------------------------------------- ---------------- ------------------ --------- ------------------- ------------- ----------------------- ------------ ---------------------- ------ ------------------ ----------------- -- --------------------- ------------- -------- ----- - -- ----------------------------- ----- ---- - - --- ----------- ------------ -------------------- -- ------ ---------- ------ ----
在上面的代码中,LINKEDIN_CLIENT_ID
和 LINKEDIN_CLIENT_SECRET
是在 LinkedIn 开发者中心 注册应用时生成的客户端 ID 和客户端密钥。LINKEDIN_CALLBACK_URL
是用于 OAuth 认证回调的 URL 地址。scope
则用于指定 OAuth 授权时需要获取的权限,在这个例子中我们使用了 'r_emailaddress' 和 'r_liteprofile' 两个权限。
当用户通过 LinkedIn 登录后,Passport-LinkedIn 会使用 callback
函数对该用户进行身份验证,验证成功后将其信息保存至数据库或返回新用户的信息。
在路由中设置 Passport
接下来,我们需要将 Passport 集成到我们的应用中。在路由中应该如下进行配置:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- -------- - -------------------- ----- ------ - ----------------- ----------------------- ----------------------------------- -------------------------------- --------------------------------- - ---------------- -------- --- ------------- ---- - -- ------------------------------ ------------------ --- -------------- - -------
在上面的代码中,我们首先向 /linkedin
路由端点发出 GET 请求,该请求将被 Passport 重定向到 LinkedIn 授权页面。当用户完成授权后,LinkedIn 将用户重定向至 /linkedin/callback
路由端点,Passport 将在此处进行身份认证。如果认证成功,用户将被重定向到主页 Home 等位置。
示例代码
下面给出一个示例代码,展示如何将 Passport-LinkedIn 集成到您的 Express 应用中。在这个例子中,我们使用 Express.js 作为后端服务器,并使用 Passport-LinkedIn 进行用户登录认证。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- -------- - -------------------- ----- ---------------- - -------------------------------------- ----- --- - ---------- ----- ------------------ - ----------------- ----- ---------------------- - --------------------- ----- --------------------- - ----------------------------------------------- ------------------------------- ---------------- ------------------ --------- ------------------- ------------- ----------------------- ------------ ---------------------- ------ ------------------ ----------------- -- --------------------- ------------- -------- ----- - ----- ---- - - --- ----------- ------------ -------------------- -- ------ ---------- ------ ---- ------------------------------------- ----- - ---------- ------ --- --------------------------------------- ----- - ---------- ------ --- ------------ ------------- ---- - ------------------ - ----- -------- --- --- ----------------- ------------- ---- - -------------------- --- ------------------------- ----------------------------------- ---------------------------------- --------------------------------- - ---------------- -------- --- ------------- ---- - ------------------ --- ---------------- ---------- - ------------------- -- ------- -- ---- ---------- ---
在本示例中,我们定义了 /auth/linkedin
路由用于发出 GET 请求以进行身份验证。在验证时,Passport-LinkedIn 将自动跳转至 LinkedIn 授权页面,要求用户授权允许访问其 LinkedIn 账户中的某些信息。如果授权成功,Passport 会将用户重定向至 /auth/linkedin/callback
路由,身份验证将根据 callback
函数中的代码进行处理。
总结
以上是使用 Passport-LinkedIn npm 包执行 LinkedIn OAuth 认证的详细介绍。通过本文,您将学到如何在您的应用中集成 Passport-LinkedIn,使其用户可以方便地使用其 LinkedIn 账户进行登录。本文还包含了大量示例代码,可以帮助读者更好地了解如何集成 Passport-LinkedIn,从而更好地应用其功能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/73899