Как лучше cделать авторизацию?
Есть роут который должен вернуть что-то только авторизированным пользователям.
Я знаю только 2 способа выполнения этой задачи,
1) В самом роуте добавить мидлвеер проверки заголовка авторизации и проверять токен и если всё норм то добавлять к объекту запроса поле user с payload токена.
2) Сделать глобальный мидлвеер который при любом запросе проверяет токен авторизации и делает тоже самое как и первый способ.
Как лучше сделать ? Может есть ещё какие-то способы? Заранее спасибо за ответ!
Дополнительно:
1 вариант, только не в целом роуте добавлять, а в каждом эндпоинте где нужна авторизация, хотя тут кстати даже токен не нужно дальше передавать, ток юзера
Можно и так и так и ещё как-нибудь.
Слишком абстрактный вопрос.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для создания безопасной и эффективной системы авторизации на сайте, рекомендуется использовать методы аутентификации, которые обеспечивают защиту личных данных пользователей и предотвращают несанкционированный доступ к системе.
Вот несколько шагов, которые могут помочь вам создать надежную систему авторизации:
1. Хэширование паролей: Храните пароли пользователей в зашифрованном виде, используя современные хэшированные алгоритмы, такие как bcrypt. Никогда не храните пароли в открытом виде в базе данных.
$password = password_hash($password, PASSWORD_BCRYPT);
2. Использование токенов: При успешной аутентификации пользователя генерируйте уникальный токен, который будет использоваться для авторизации запросов пользователя. Токены должны иметь ограниченный срок действия и быть связаны с конкретным пользователем.
$token = bin2hex(random_bytes(32));
3. Защита от CSRF и XSS атак: Обеспечьте защиту от атак межсайтового подделывания запросов (CSRF) и межсайтового скриптинга (XSS), используя механизмы проверки CSRF-токенов и фильтрацию входных данных.
4. Частые проверки безопасности: Регулярно обновляйте библиотеки и фреймворки, используемые в вашем проекте, для предотвращения уязвимостей безопасности. Также проводите аудит безопасности и тестирование на проникновение.
5. Двухфакторная аутентификация: Рассмотрите возможность внедрения двухфакторной аутентификации для повышения уровня безопасности. Этот метод требует от пользователя ввода дополнительного проверочного кода, который генерируется на основе уникального устройства или приложения.
6. Журналирование и мониторинг: Ведите журналы аутентификационных событий и мониторьте активность пользователей, чтобы быстро обнаруживать подозрительную активность или попытки несанкционированного доступа.
Соблюдение вышеперечисленных шагов поможет создать надежную систему авторизации, которая обеспечит безопасность персональных данных пользователей и защитит вашу систему от возможных угроз.