Laravel 5: диагностика токена сброса пароля недействительна, ошибка

Я использую систему аутентификации Laravel для отправки приветственного письма всем новым пользователям. В основном он работает нормально, но у меня было несколько отдельных случаев, когда я получал ошибку «токен сброса пароля недействителен».

Чтобы диагностировать это, я хотел бы иметь возможность вручную сравнивать строки, указанные в URL-адресе пользователя (то есть токен, который я отправил им по электронной почте), со значением, хранящимся в поле password_resets.token. Как я могу это сделать?

Токен в URL-адресе выглядит как 64 шестнадцатеричных символа. Токен в базе данных начинается с $2y$10$, поэтому я предполагаю, что это результат функции password_hash. Как я могу переводить с одного на другой?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
0
1 297
2

Ответы 2

Прежде всего, я хочу сказать, что токен в URL-адресе не является результатом работы функции password_hash.

Чтобы сравнить токен в URL-адресе и то, что сгенерировано или сохранено, вы можете проверить в своей базе данных. Проверьте таблицу password_resets, проверьте электронную почту пользователя, найдите токен, соответствующий этому адресу электронной почты.

Токен в URL-адресе должен быть таким же, как и в базе данных для адреса электронной почты.

Альтернативой является проверка, эквивалентен ли один другому (это означает, что один является хешированной / нехешированной версией другого). Для этого вы можете использовать функцию Hash :: check (). Из документы:

Verifying A Password Against A Hash

The check method allows you to verify that a given plain-text string corresponds to a given hash. However, if you are using the LoginController included with Laravel, you will probably not need to use this directly, as this controller automatically calls this method:

if (Hash::check('plain-text', $hashedPassword)) {
    // The passwords match...
}

Другие вопросы по теме