什么是 @keyhub/keyhub-vault-nxt
@keyhub/keyhub-vault-nxt 是 Keyhub 公司开发的一个为 Web 应用提供身份认证和权限管理的 npm 包。它可以实现对应用的安全访问控制,使得用户仅能访问到他有权限的页面或功能,并能够在使用可信的身份信息的情况下,有条件地使用 Keyhub 中的安全服务。
安装
在使用 @keyhub/keyhub-vault-nxt 之前,你需要先通过 npm 安装该包。在终端输入以下命令即可进行安装:
npm install @keyhub/keyhub-vault-nxt
使用
安装完成 @keyhub/keyhub-vault-nxt 后,你可以使用它提供的类及方法来实现认证和权限管理。
初始化
首先,你需要实例化 KeyhubVault 对象并调用它的 init 方法。init 方法接受一个对象作为参数,该对象包括以下属性:
- vaultUrl: 你的 Keyhub Vault 的 API Endpoint
- appId: 你在 Keyhub 中创建的应用的 ID
- appSecret: 你在 Keyhub 中创建的应用的 Secret
以下是一个初始化 KeyhubVault 对象并调用 init 方法的示例代码:
import { KeyhubVault } from '@keyhub/keyhub-vault-nxt'; const keyhubVault = new KeyhubVault(); keyhubVault.init({ vaultUrl: 'https://vault.keyhub.app/api', appId: 'your_app_id', appSecret: 'your_app_secret' });
登录
接下来,你可以使用 KeyhubVault 对象的 login 方法,来进行身份认证。login 方法接受一个 loginOptions 对象作为参数,该对象包括以下属性:
- userId: 用户的 ID
- password: 用户的密码
登录成功后,登录回调函数将会被调用。在登录回调函数中,你可以将用户的身份信息存储到 sessionStorage 或 localStorage 中,以实现用户的持久化登录。
以下是一个登录并将用户信息存储到 sessionStorage 中的示例代码:
-- -------------------- ---- ------- ----- ------------ - - ------- --------------- --------- --------------- -- ------------------------------- ----- ----- -- - -- ----- - --------------------------- - ---- - ------------------------------ ---------------------- - ---
权限管理
KeyhubVault 还提供了 checkPermission 方法,用于判断用户是否有权限访问某个页面或功能。该方法接受一个对象作为参数,该对象包括以下属性:
- userId: 用户的 ID
- resource: 要访问的资源
- action: 要执行的操作
以下是一个 checkPermission 的示例代码:
-- -------------------- ---- ------- ----- ----------------- - - ------- --------------- --------- ------------- ------- ----- -- ---------------------------------------------- ----- ------- -- - -- ----- - --------------------------- - ---- - -------------------- -- ---- -- ----- - ---
总结
通过以上示例代码,你可以使用 @keyhub/keyhub-vault-nxt 来实现 Web 应用的身份认证和权限管理。当然,这只是它的一个部分功能,更多功能你可以自行参考官方文档。不过需要注意的是,使用 @keyhub/keyhub-vault-nxt 要求你必须拥有 Keyhub 的账号并在其中提前创建应用,才能开发和调试该包。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066b5451ab1864dac669f1