Auth Pwless

Безпарольная аутентификация для Payload CMS с passkeys, magic-ссылками, OAuth и сессиями на refresh-токенах.

Сообщество 2 31/нед MIT v0.2.0

Установка

pnpm add @trieb.work/payload-auth-pwless

Описание

Самостоятельно размещаемый плагин для Payload CMS 3.x, заменяющий встроенную стратегию входа по email и паролю на коллекции `users`. Включает вход через WebAuthn/passkeys, magic-ссылки на email и OAuth (Google и Facebook). При установке параметр `disableLocalStrategy` устанавливается в `true`, поэтому старые логины по email и паролю на расширенной коллекции `users` перестают работать и требуют миграции. Плагин расширяет существующую коллекцию `users` с флагом `auth: true` и добавляет две новые коллекции: `webauthn-credentials` и `sessions`. Пользовательская система сессий выдаёт короткоживущие JWT access-токены и долгоживущие refresh-токены в HttpOnly cookie, с привязкой к device fingerprint и дедупликацией одновременных запросов. Регистрируется собственная JWT-стратегия аутентификации, а в конфигурацию Payload добавляются API-эндпоинты для каждого сценария: регистрация и проверка passkeys, запрос и подтверждение magic-ссылок, обработчики OAuth callback с привязкой аккаунтов по верифицированному email, обновление токенов, logout, онбординг и опциональный автоматический вход для разработки через agent. Каждый метод можно включить или выключить отдельно (`enableWebAuthn`, `enableMagedLink`, `enableOAuth`). Доступны настройки времени жизни сессий и токенов, задание разрешённых WebAuthn origins для нескольких хостов и опциональные application contexts: один экземпляр Payload за несколькими фронтендами с разными параметрами сессий, путями входа и брендингом email. Очистка устаревших сессий выполняется задачей в Payload Jobs Queue, для запуска которой требуется `jobs.autoRun` или внешний cron. Компоненты входа в админ-панель добавляются автоматически и отключаются через `adminUI.enabled: false`. Опциональный шаг онбординга добавляет поля `firstName`, `lastName` и `onboardingComplete` с редиректом. Авторизация (RBAC и разрешения) намеренно вынесена за рамки плагина. Плагин отвечает за identity и сессии, а слой ролей и прав нужно реализовать отдельно. В основе лежат библиотеки `@simplewebauthn/browser` и `server`, а также `jose`; для ограничения частоты запросов используется in-memory rate limiting. Это не сторонний сервис аутентификации, а решение, работающее внутри вашего Payload.

О пакете

Имя пакета
@trieb.work/payload-auth-pwless
Последняя версия
0.2.0
Размер
564 кБ
Лицензия
MIT
Загрузок в неделю
31
Последняя публикация
29 июл. 2026 г.

Ещё от trieb-work

Профиль автора