npm 包 oidc-passport 使用教程

阅读时长 8 分钟读完

简介

oidc-passport 是一个基于 OAuth2 和 OpenID-Connect 协议的认证库,在 Node.js 应用中使用时可以快速实现用户的认证和授权。

本文将针对 oidc-passport 的使用进行详细介绍和指导,包含 oidc-passport 的基本使用、配置、示例代码以及常见问题解决方案等。

安装

首先,需要在项目中安装 oidc-passport 包,可以通过以下命令进行安装:

基本使用

在 Node.js 中使用 oidc-passport 必须要先引入这个包并且创建一个实例。下面是一个基本的示例:

-- -------------------- ---- -------
----- ------- - -------------------
----- -------- - --------------------
----- ------------ - ----------------------------------

-- ----- ------ - -------------- --------- ------ ------- ------------------------- ----
---------------- --------------
  ------- ------------------------------
  ----------------- -----------------------------------------------
  --------- ---------------------------------------------
  ------------ ------------------------------------------------
  --------- -----------------
  ------------- ---------------------
  ------------ ------------------------
  ------ ------- ----- ---------
  -------------- -------
-- ----- ------------- ------------- -------- --- -- -
  -- -- ------- -----------
  ------ -------- ---------
----

----- --- - ----------
-------------------------------

-- -- ------------- - ------------ ------
----------------------- -------------------------------

-- ----------
-------------------------------- ----------------------------- - -------- ----- --- ----- ---- -- -
  -------------------
---

配置

oidc-passport 提供了以下的配置项:

  • issuer: OAuth2 和 OpenID-Connect 站点的发行人;
  • authorizationURL: OAuth2 站点的认证地址;
  • tokenURL: OAuth2 站点的 Token 地址;
  • userInfoURL: OpenID-Connect 站点的用户信息地址;
  • clientID: OAuth2 和 OpenID-Connect 中的 Client ID;
  • clientSecret: OAuth2 和 OpenID-Connect 中的 Client Secret;
  • callbackURL: 认证完成之后的回调地址;
  • scope: 请求的权限范围;
  • response_type: 授权请求的响应类型(可选,默认 'code');
  • state: 一个不长于 32 个字节的随机字符串,用于防止跨站请求攻击;
  • prompt: 是否强制用户每次登录(可选,默认 'consent');
  • nonce: 随机字符串,用于防止 ID Token 响应重放攻击。

可以根据应用实际需要进行配置。

示例代码

以下是一个完整的示例代码,其中使用 Google OAuth2/ OpenID-Connect。

-- -------------------- ---- -------
----- ------- - -------------------
----- ------- - ---------------------------
----- ---------- - -----------------------
----- -------- - --------------------
----- ------------ - ----------------------------------

----- --- - ----------

----- ---- - ---------------- -- -----

------------------------------- --------- ----- ----
---------------------------
----------------- ------- --------- ------- ----- ---------------------- ----
-------------------------------

----------------------------- --- -- -
  -------- ------
---

------------------------------ --- -- -
  -------- -----
---

---------------- --------------
  ------- ------------------------------
  ----------------- -----------------------------------------------
  --------- ---------------------------------------------
  ------------ ------------------------------------------------
  --------- -----------------------------
  ------------- ---------------------------------
  ------------ ------------------------
  ------ ------- ----- ---------
  -------------- -------
-- ----- ------------- ------------- -------- --- -- -
  -- -- ------- -----------
  ------ -------- ---------
----

----------------------- -------------------------------

-------------------------------- ----------------------------- - -------- ----- --- ----- ---- -- -
  -------------------
---

---------------- -- -- -
  ------------------- --------- -- ----------
---

常见问题解决方案

缺少重定向 URI

如果 Google OAuth2/ OpenID-Connect 返回以下错误:

则需要在 Google 开发者控制台中配置重定向 URI。在此之前需要先确保 localhost:3000 已添加到允许列表中。

返回 401 错误

如果 Google OAuth2/ OpenID-Connect 返回以下错误:

则可能是因为 OAuth2 和 OpenID-Connect 中的 Client ID 或 Client Secret 不正确导致。需要到 Google 开发者控制台中查看这些信息是否正确,并确保同时在 API & Services -> CredentialsAPI & Services -> OAuth consent screen 页面进行配置。

总结

本文介绍了 oidc-passport 的使用方法及详细的配置文件参数,示例代码也提供了基本的范例供读者实践。同时对 oidc-passport 的常见问题进行了简要的解释,希望对读者有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066fac3d1de16d83a67156

纠错
反馈