在这篇文章中,我们介绍了如何使用Sinopia来搭建自己的私有npm服务器。
工作中遇到了的一个常见需求,就是对于一些sdk包,需要控制其publish流程,同时只允许若干特定用户才能publish。
这就需要用到Sinopia中关于用户控制的配置部分了。
来看看Sinopia的配置文件中关于用户控制都有哪些。
1. 用户注册
|
|
在auth
配置项中, 首先指定了保存用户的账号密码等信息的file
文件,其实这就是一个文本文件,使用文本编辑器就就可以打开。
其中保存了用户名、密码和创建时间等信息,如下:
|
|
注:sinopia本身没有使用数据库,这也是为什么其配置非常简单。
如果通过max_users: -1
关闭了注册,则用户将不能再通过npm add user
命令来注册用户。
但是管理员还是可以通过直接修改htpasswd
文件来添加用户。
2. 权限控制
控制用户对特定包的权限(访问和发布)
先说几个关键字:
$all
: 所有用户$authenticated
: 通过认证的用户(npm login)$anonymous
: 匿名用户
|
|
主要的配置参考上面的注释即可。总的来说,就是通过对包名进行过滤,分别设置其access
和publish
。
我们的一个需求是需要对自己修改过的react-native包进行托管,所有用户都能访问,但是仅允许管理员发布。
只需要下面的配置就能满足:
|
|