Autentizace
Zabezpečte svou aplikaci CatCMS pomocí JWT autentizace a řízení přístupu na základě rolí.[object Object]
Přehled
CatCMS používá pro autentizaci JWT (JSON Web Tokens) s:
- 24hodinovou expirací tokenu
- ukládáním do HTTP-only cookie pro webové klienty
- podporou Bearer tokenu pro API klienty
- ukládáním tokenů do KV mezipaměti(TTL 5 minut)
- řízením přístupu na základě rolí(RBAC)
- systémem oprávnění pro granulární řízení přístupu
JWT Tokens
Secure, stateless authentication with automatic expiration
User Roles
Admin, Editor, Author, and Viewer roles with different permissions
Fast Verification
KV cache for sub-millisecond token verification
Secure by Default
HTTP-only cookies, CSRF protection, and rate limiting
JWT autentizace
Přihlášení
/auth/login curl -X POST http://localhost:8787/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "admin@catcms.app",
"password": "admin123"
}'const response = await fetch('http://localhost:8787/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
email: 'admin@catcms.app',
password: 'admin123',
}),
})
const { user, token } = await response.json()Login Request
Odpověď (200 OK):
{
"user": {
"id": "admin-user-id",
"email": "admin@catcms.app",
"username": "admin",
"firstName": "Admin",
"lastName": "User",
"role": "admin"
},
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
Použití tokenu
Pro ověřené požadavky vložte token do hlavičky Authorization:
curl http://localhost:8787/admin/content \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."const response = await fetch('http://localhost:8787/admin/content', {
headers: {
Authorization: `Bearer ${token}`,
},
})Authenticated Request
Pro aplikace založené na prohlížeči se token automaticky ukládá jako HTTP-only cookie s názvem auth_token.
Správa uživatelů
Registrace uživatele
/auth/register curl -X POST http://localhost:8787/auth/register \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "securepassword123",
"username": "newuser",
"firstName": "John",
"lastName": "Doe"
}'const response = await fetch('http://localhost:8787/auth/register', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
email: 'user@example.com',
password: 'securepassword123',
username: 'newuser',
firstName: 'John',
lastName: 'Doe',
}),
})
const { user, token } = await response.json()Register User
RBAC
Uživatelské role
CatCMS podporuje čtyři vestavěné role:
- Name
admin- Type
- string
- Description
Plný přístup k systému. Může spravovat uživatele, obsah, nastavení a pluginy.
- Name
editor- Type
- string
- Description
Správa obsahu. Může vytvářet, upravovat, publikovat a mazat obsah.
- Name
author- Type
- string
- Description
Tvorba obsahu. Může vytvářet a upravovat vlastní obsah, ale ne publikovat.
- Name
viewer- Type
- string
- Description
Přístup pouze pro čtení. Může zobrazovat obsah, ale ne ho upravovat.
Middleware
Chraňte trasy pomocí middleware pro ověřování a role:
// Require authentication
app.use('/admin/*', requireAuth())
// Require specific role
app.use('/admin/\*', requireRole(['admin', 'editor']))
// Require permission
app.use('/admin/settings/\*', requirePermission('manage:settings'))
// Optional authentication
app.use('/api/\*', optionalAuth())
Middleware Protection
Další kroky