Авторизация и роли — по шагам

Это самый сложный урок паттерна — и самый важный. Разберём вход и роли по шагам, чтобы не запутаться. Не спеши: пройди шаги по очереди, и всё сложится. Всё соберёт Claude Code, а твоя задача — понимать, что происходит.

🎯 После урока сможешь: настроить вход по логину и роли пользователей по шагам.

Шаг 1. Регистрация и пароль

Пользователь заводит логин и пароль. Пароль никогда не хранят как есть. Его превращают в нечитаемый отпечаток (хеш) специальным способом (bcrypt). Даже если база утечёт, пароли из неё не достать.

Правило: пароли — только в виде хеша (bcrypt), не открытым текстом. Это как секреты в .env: то, что нельзя показывать, не хранят в читаемом виде.

Шаг 2. Вход (логин)

При входе пользователь вводит логин и пароль. Система берёт введённый пароль, превращает в хеш тем же способом и сравнивает с сохранённым. Совпало — впускаем.

Страница входа в CRM: поля email и пароль, кнопка «Войти».

Шаг 3. Пропуск: сессия или JWT

После входа система выдаёт пользователю «пропуск», чтобы не спрашивать логин на каждой странице. Пропуск бывает двух видов — сессия (метка на сервере) или JWT (подписанный токен у пользователя). Для начала подойдёт любой; Claude Code настроит один из них.

Шаг 4. Проверка роли

У каждого пользователя есть роль (админ / менеджер / просмотр). Перед каждым важным действием система проверяет: «а можно ли этой роли?». Админ видит всё, менеджер — только своих клиентов, просмотр — только читает.

  Заходит пользователь ─▶ проверка роли ─▶ показываем только разрешённое

   Админ    → все заявки + кнопки «изменить/удалить»
   Менеджер → свои заявки + «изменить» (без «удалить»)
   Просмотр → все заявки, но кнопок изменения НЕТ
Два экрана рядом: вид администратора (все заявки, кнопки изменить и удалить) и вид менеджера (только свои заявки, без кнопки удалить).

Контрольный вопрос. Как правильно хранить пароли пользователей?

АТолько в виде хеша (bcrypt) — нечитаемого отпечатка, не открытым текстом
БОткрытым текстом в базе, так проще проверять
ВВ файле .env вместе с токенами

Подсказка: Даже если база утечёт, пароли из неё не должны достаться.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Зачем после входа выдают «пропуск» (сессию или JWT)?

АЧтобы не спрашивать логин и пароль на каждой странице
БЧтобы хранить пароль в открытом виде
ВЧтобы ускорить базу данных

Подсказка: Пропуск подтверждает, что пользователь уже вошёл.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Менеджер зашёл в CRM. Что он НЕ должен мочь по правилам ролей?

АВидеть чужих клиентов и удалять данные — это может только админ
БВидеть свои заявки
ВМенять свои заявки

Подсказка: Вспомни таблицу ролей: у менеджера прав меньше, чем у админа.

Онлайн-проверка ответа появится позже

Что дальше

Ты прошёл самое сложное — вход и роли по шагам. В последнем содержательном уроке закроем безопасность (инъекции, XSS), миграции и деплой — и добавим мини-аналитику для руководителя.

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева