Skip to main content

Аутентификация

Аутентификация зависит от того плагина, который вы используете. Так же, есть возможность задать ограничения на пакеты через доступ к пакетам.

Аутентификация клиента выполняется самим клиентским приложением npm. Когда вы выполняете логин в приложение:

npm adduser --registry http://localhost:4873

В файле конфигурации npm, расположенном в домашней директории пользователя, генерируется токен. Больше информации о .npmrc читайте в официальной документации.

cat .npmrc
registry=http://localhost:5555/
//localhost:5555/:_authToken="secretVerdaccioToken"
//registry.npmjs.org/:_authToken=secretNpmjsToken

Анонимная публикация

verdaccio позволяет включить анонимную публикацию. Для того, чтобы сделать это вам нужно правильно настроить ваш доступ к пакетам.

Например:

  'my-company-*':
access: $anonymous
publish: $anonymous
proxy: npmjs

Как описано в issue #212 до npm@5.3.0, включая все минорные релизы, не позволят вам публикацию без токенов.

О группах

Как понимать $all и $anonymous

Как вы знаете, Verdaccio использует htpasswd по умолчанию. Этот плагин не реализует методы allow_access, allow_publish и allow_unpublish. И Verdaccio будет действовать таким образом:

  • Если вы не залогинены (вы - аноним), $all and $anonymous означают одно и то же.
  • Если вы залогинены, $anonymous не будет в списке ваших групп, а $all будет у любого залогиненого пользователя. Так же, в список добавится новая группа $authenticated.

В общем, $all означает всех пользователей, независимо от того, залогинены они или нет.

Все описанное выше - только про плагин аутентификации по умолчанию. Если вы используете кастомный плагин и этот плагин реализует allow_access, allow_publish или allow_unpublish, то разрешения будут зависет от этого вашего плагина. Verdaccio установит только группы по умолчанию.

Отметим еще раз:

  • залогиненные: $all, $authenticated, + группы, добавленные плагином
  • анонимы (не залогиненные): $all и $anonymous.

Стандартный htpasswd

Чтобы упростить установку, verdaccio использует плагин, основанный на htpasswd. С версии v3.0.x, по умолчанию используется плагин verdaccio-htpasswd.

auth:
htpasswd:
file: ./htpasswd
# Максимальное количество пользователей, которые могут зарегистрироваться. По умолчанию "+inf".
# Вы можете установить -1 для отключения регистрации пользователей.
#max_users: 1000
СвойствоТипОбязательноеПримерПоддержкаОписание
filestringДа./htpasswdвсефайл, содержащий зашифрованные учетные данные
max_usersnumberНет1000всеограничение на количество пользователей

Для того, чтобы запретить пользователям входить, вы можете установить max_users: -1.