当我们需要发布自己的 npm 包到公共仓库,例如 npmjs.com,这时我们就需要选择并配置一个私有仓库,以保护我们的包不被公开访问或被篡改。其中,Verdaccio 是一个相对比较流行的选择,它是一个本地的、相对轻量级的 npm 仓库,可用于替代 npmjs.com。@devpodio/verdaccio-level-auth 是一个基于 Verdaccio 实现的插件,用于提供基于用户级别的访问控制。本文将详细介绍如何安装、配置和使用该插件。
安装
在已经安装好 Verdaccio 的环境中,使用以下命令安装 @devpodio/verdaccio-level-auth:
npm install @devpodio/verdaccio-level-auth
配置
激活插件
在 verdaccio 的配置文件 config.yml
中,将 auth
配置项设置为 @devpodio/verdaccio-level-auth
,并配置 users
:
auth: @devpodio/verdaccio-level-auth: users: user1: password: my-password access: admin allow_adduser: true enabled: true
其中:
users
中配置了用户的用户名 (key),密码 (password) 及用户级别 (access);access
表示每个用户名对应的用户级别,可自定义,例如此处为admin
;allow_adduser
表示是否允许添加新用户,该值默认为false
;enabled
表示 @devpodio/verdaccio-level-auth 是否启用,该值默认为false
。
设置用户级别
在上述配置中,我们设置了 access
,这是该插件提供的核心功能,用于实现基于用户级别的访问控制。例如:
-- -------------------- ---- ------- ----- ------------------------------- ------ ------ --------- ----------- ------- ----- ------ --------- ----------- ------- ----- -------- ----
以上配置中,我们定义了两个用户,其中 user1
的级别为 admin
,user2
的级别为 basic
。当用户使用 user1
登录时,其拥有更高的操作权限,可以查看和修改更多的 npm 包。而当用户使用 user2
登录时,其操作权限更为有限,只能查看和修改一些基本的 npm 包信息。
测试
当配置完成后,我们可以在 Verdaccio 上进行测试。以上传包为例,您可以按如下步骤进行:
- 在本地新建一个 npm 包,例如
my-npm-package
,并通过npm login
命令登录到 Verdaccio 上; - 通过
npm publish
命令将包上传到 Verdaccio 上; - 使用
npm whoami
命令查看当前登录账号的用户名; - 在 Verdaccio 的
web
界面中,在users
选项卡中查看该用户名对应的用户级别; - 在 Verdaccio 的
web
界面中,找到my-npm-package
包,查看该用户是否有read
和write
权限。
示例代码
以下是一个基于 @devpodio/verdaccio-level-auth 的示例配置文件:
-- -------------------- ---- ------- - ---------- ----- ------------------------------- ------ ------ --------- ----------- ------- ----- ------ --------- ----------- ------- ----- -------- ---- --------- ------- ------- -------------- -------- -------------- ----- ------- ---- -------- --------------
总结
本文介绍了如何安装、配置和使用 @devpodio/verdaccio-level-auth,以实现基于用户级别的访问控制。需要注意的是,插件的级别配置和权限控制需要根据具体业务需求进行设置,以确保安全性和可用性。希望本文能够对使用 Verdaccio 的开发者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066b6151ab1864dac672ff