Перейти к содержимому

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

Laminara не хранит аккаунты. Логины и пароли остаются там, где они у вас уже есть — в базе сайта, в отдельном файле или за вашим API. Laminara обращается к этому источнику через адаптер, проверяет пару логин/пароль и владеет только сессиями.

Раздел auth состоит из трёх частей: провайдер (откуда аккаунты), хеш пароля и хранилище сессий.

Провайдеры

Аккаунты в JSON-файле. Годится для небольшого списка или на старте.

{
"provider": "jsonfile",
"config": {
"path": "/var/lib/laminara/users.json",
"hash": "argon2id",
"fields": { "username": "username", "password": "password", "uuid": "uuid" }
},
"sessions": { "backend": "memory" }
}

Сам файл — массив объектов; fields задаёт, какие ключи считать логином, паролем и (необязательно) UUID.

Хеш пароля

Поле hash (у jsonfile и sql) говорит, как пароль захеширован в вашем источнике. Laminara хеширует введённый пароль тем же способом и сравнивает. Доступны:

argon2id · bcrypt · sha256 · sha512 · md5 · plain

Сессии

Пароль проверяется один раз; дальше клиент живёт по токенам, которые выдаёт и хранит Laminara. Токен доступа короткий, токен обновления — длинный. При обновлении старый токен отзывается, а попытка воспользоваться отозванным распознаётся.

  • backend: "memory" — сессии в памяти процесса. Просто, но не переживают перезапуск и не годятся для нескольких экземпляров.
  • backend: "redis" с redisAddr — сессии в Redis: переживают перезапуск и общие для нескольких экземпляров сервера.

Сроки жизни токенов задаются полями accessTTL и refreshTTL рядом с provider (например, "15m" и "720h").