1

我有一个私人Verdaccionpm 存储库。

我配置authentification为使用 htppasswd 文件

auth:
  htpasswd:
    file: /verdaccio/conf/htpasswd
    max_users: -1

所以现在没有人可以做npm add ...,但必须使用npm login ...

登录后,我可以发布我的图书馆npm publish

但是有几点我不明白:

  • npm login正在问我一封电子邮件。但有什么意义呢?我在已发布的包裹中找不到该电子邮件的任何痕迹。
  • npm login我的 .npmrc 文件中生成令牌后。有有效期吗?
  • 在 Verdaccio 中发表后,我将匿名视为author name. 我发现“输入”我的名字的唯一解决方案是在package.json. 但是,如果我们是 3 个人在那个图书馆工作,我们每次都必须更改我们的名字吗?有没有办法(在服务器上)将 htpasswdd 与作者姓名/电子邮件相关联?
4

1 回答 1

1

这里是 Verdaccio 核心维护者。我会尽力回答你所有的问题。

npm login 向我询问电子邮件。但有什么意义呢?我在已发布的包裹中找不到该电子邮件的任何痕迹。

Verdaccio 不需要 email,但不幸的是需要npmjs.org,所以只需写入任何值并跳过该步骤,我们无法采取任何措施来避免这种情况。

在 npm 登录后,会在我的 .npmrc 文件中生成一个令牌。有有效期吗?

这取决于您使用的是哪个身份验证,默认情况下令牌永不过期使用

auth:
  htpasswd:
    file: /verdaccio/conf/htpasswd

但如果您想使令牌过期,则需要添加Verdaccio 4 中引入的安全新属性

security:
  api:
    jwt:
      sign:
        expiresIn: 29d

上面的示例将在 29 天后使所有令牌过期,它会覆盖默认行为,令牌变得与 JWT 兼容并共享它的所有属性和好处。

出版后,在 Verdaccio 中,我看到匿名作为作者姓名。我发现“输入”我的名字的唯一解决方案是在 package.json 中添加作者标签。但是,如果我们是 3 个人在那个图书馆工作,我们每次都必须更改我们的名字吗?有没有办法(在服务器上)将 htpasswdd 与作者姓名/电子邮件相关联?

作者可以只有一个,但您有更多选择,贡献者维护者。只需将它们添加package.json如下。

在此处输入图像描述

结果将在 Verdaccio UI 中出现。

在此处输入图像描述

于 2020-01-24T10:22:40.840 回答