npm 包 get-keycloak-public-key-with-agent-d 使用教程

阅读时长 4 分钟读完

在现代 web 应用开发中,安全是至关重要的。OAuth2 和 OpenID Connect 是两种广泛使用的安全协议,其中 Keycloak 是一个常见的开源身份和访问管理解决方案。在使用 Keycloak 时,获取公钥来验证令牌签名是一个常见的任务。这时可以使用 get-keycloak-public-key-with-agent-d npm 包来方便地完成。

安装

安装 get-keycloak-public-key-with-agent-d 很简单,只需要运行下面的命令:

使用

获取公钥的方法很简单,只需要在代码中引用 get-keycloak-public-key-with-agent-d 并调用 getKeycloakPublicKeyWithAgentD 函数即可。

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

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

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

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

可以看到,使用这个包只需要传入 Keycloak realm 的 URL、realm 的名称和 agentd 的 URL,就可以异步返回公钥。

示例代码

为了展示如何使用 get-keycloak-public-key-with-agent-d npm 包来验证 JWT,下面是一个使用 Express 框架的示例代码:

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

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

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

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

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

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

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

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

运行上面的代码后,在浏览器中打开 http://localhost:3000/hello,并在请求头中添加一个 JWT(可以使用 curl 等命令行工具来实现),则可以看到输出 "Hello World!"。如果 JWT 不合法,则会返回 401。

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

纠错
反馈