Auth¶
JWT + Google OAuth аутентификация с поддержкой B2B компаний.
Возможности¶
- Регистрация с привязкой к компании (БИН)
- JWT токены
- Google OAuth
- Сброс пароля по email
- Роли и права
Использование¶
Регистрация¶
POST /api/auth/register
{
"email": "user@company.kz",
"password": "secret123",
"firstName": "Иван",
"lastName": "Иванов",
"bin": "123456789012", // БИН компании
"companyName": "ТОО Компания"
}
Логин¶
POST /api/auth/login
{
"email": "user@company.kz",
"password": "secret123"
}
// Response
{
"token": "eyJhbGciOiJIUzI1NiIs...",
"user": {
"id": 1,
"email": "user@company.kz",
"firstName": "Иван",
"role": "employee",
"companyId": 1,
"company": { "name": "ТОО Компания", "bin": "123456789012" }
}
}
Проверка БИН¶
GET /api/auth/check-bin/123456789012
// Если компания существует
{ "exists": true, "company": { "name": "ТОО Компания", "status": "ACTIVE" } }
// Если не существует
{ "exists": false }
Google OAuth¶
GET /api/auth/google // Инициация OAuth
GET /api/auth/google/callback // Callback
GET /api/auth/oauth-status // Проверка доступности OAuth
Роли по умолчанию¶
const permissions = {
admin: [
'view_deals', 'create_deals', 'edit_deals', 'delete_deals',
'manage_users', 'manage_roles', 'view_reports', 'export_data'
],
manager: [
'view_deals', 'create_deals', 'edit_deals', 'view_reports'
],
employee: [
'view_deals', 'create_deals', 'edit_deals'
],
viewer: ['view_deals']
};