Цель
Заменить временный выбор пользователя через LocalStorage на простую систему авторизации.
Проект предназначен для небольшой группы пользователей, поэтому авторизация должна быть максимально простой и не усложнять архитектуру.
План
Этап 1. Пользователи
- добавить каждому пользователю уникальный логин;
- хранить пароль в виде хеша (bcrypt или аналогичный алгоритм);
- создать администратора, который сможет создавать пользователей вручную.
Этап 2. Вход
- реализовать страницу входа;
- после успешной проверки логина и пароля создавать пользовательскую сессию;
- сохранять идентификатор пользователя в безопасной cookie.
Этап 3. Защита маршрутов
Закрыть авторизацией страницы:
- Dashboard;
- История заказов;
- Создание заказа;
- Ответ на предложение;
- Завершение заказа.
Неавторизованный пользователь должен перенаправляться на страницу входа.
Этап 4. Определение текущего пользователя
После авторизации приложение должно получать текущего пользователя из сессии.
Во всех действиях использовать именно авторизованного пользователя, а не передавать user_id из браузера.
Этап 5. Администрирование
В дальнейшем предусмотреть возможность:
- создавать новых пользователей;
- менять пароль;
- отключать пользователя без удаления его истории.
Не входит в задачу
На данном этапе не требуется:
- регистрация пользователей;
- восстановление пароля;
- OAuth (Google, GitHub и т.д.);
- JWT;
- двухфакторная аутентификация;
- управление ролями.
Цель — получить простую, надежную и понятную систему авторизации для закрытого внутреннего сервиса.
Цель
Заменить временный выбор пользователя через LocalStorage на простую систему авторизации.
Проект предназначен для небольшой группы пользователей, поэтому авторизация должна быть максимально простой и не усложнять архитектуру.
План
Этап 1. Пользователи
Этап 2. Вход
Этап 3. Защита маршрутов
Закрыть авторизацией страницы:
Неавторизованный пользователь должен перенаправляться на страницу входа.
Этап 4. Определение текущего пользователя
После авторизации приложение должно получать текущего пользователя из сессии.
Во всех действиях использовать именно авторизованного пользователя, а не передавать
user_idиз браузера.Этап 5. Администрирование
В дальнейшем предусмотреть возможность:
Не входит в задачу
На данном этапе не требуется:
Цель — получить простую, надежную и понятную систему авторизации для закрытого внутреннего сервиса.