Аутентифікація і маршрутизація
Ця сторінка пояснює захист маршрутів і поведінку ролей на frontend і backend.
Групи маршрутів frontend
Публічні маршрути:
/login/accept-invite
Маршрути співробітника:
//courses/courses/:id/results
Адмінські маршрути:
/admin/admin/team/admin/users/admin/content/admin/courses/:id/admin/assignments
Захист на frontend
App.jsx використовує обгортки захисту:
ProtectedEmployeeOnlyAdminOnly
Поведінка:
- відсутність токена перенаправляє на
/login - адміни перенаправляються із маршрутів співробітника
- неадміни перенаправляються з адмінських маршрутів
Модель аутентифікації backend
Backend API використовує токенну аутентифікацію Laravel Sanctum.
У routes/api.php:
/api/loginє публічним- ендпоінти для токенів запрошень у потоці прийняття є публічними
- усі інші API-маршрути знаходяться всередині
auth:sanctum
Модель авторизації
Авторизація враховує роль на рівні контролерів.
Типові обмеження:
- співробітники не можуть керувати користувачами, контентом або статистикою
- адміністратори мають доступ до керування та аналітики
- співробітники не можуть бачити чернетки курсів (draft)
Потік onboarding через запрошення
- Адмін створює запрошення.
- Отримувач відкриває
/accept-invite?token=.... - Frontend перевіряє токен через API.
- Отримувач задає ім'я і пароль.
- Backend створює користувача і повертає auth payload.
- Користувач автоматично входить у систему і перенаправляється відповідно до ролі.
Практичні перевірки
Під час зміни маршрутів або ролей:
- перевіряйте поведінку frontend guards
- перевіряйте захист backend-ендпоінтів
- тестуйте перенаправлення для обох ролей
- тестуйте потік invite з валідними та простроченими токенами