Как реализовать API keys с поддержкой scopes?

Senior
246 просмотров
AFK Offer AI

API keys со scopes: при создании ключа пользователь выбирает права (read:users, write:posts). Ключ = prefix (sk_live_) + random (32 bytes hex). В БД хранишь SHA256(ключ), userId, scopes[], lastUsed, expiresAt. Middleware: берёт X-API-Key, считает SHA256, ищет в БД, проверяет активность. Scope guard: проверяет что requiredScope в key.scopes. Логируй использование. Обновляй lastUsed асинхронно (setImmediate). Позволяй создавать несколько ключей с разными scopes. Показывай ключ только один раз при создании.

Следующий вопрос

Что такое Exception Filters в NestJS?