Я пишу тест, который гарантирует, что функция сброса пароля моего приложения будет работать. Система сброса пароля была создана с помощью команды php artisan make:auth
. Чтобы выполнить пробный проход, мне нужно автоматизировать запрос GET на /password/reset/{$token}
, где $token
- это значение, хранящееся в таблице password_resets
. Laravel хранит лексемы, как это:Decrypt Laravel Password Reset Token
$2y$10$9grKb3c6.Toiv0kjUWbCUeT8Q8D.Fg2gZ/xDLGQUAkmdyHigmRkNW
но когда Laravel отправляет сообщение электронной почты для сброса пароля для пользователя, маркер сброса выглядит в письме:
382aa64567ecd05a774c2e4ebb199d3340a1424300707053354c749c10487594
.
Мой запрос GET на /password/reset/$2y$10$9grKb3c6.Toiv0kjUWbCUeT8Q8D.Fg2gZ/xDLGQUAkmdyHigmRkNW
не работает из-за косой черты в марке сброса. (Сразу после «g2gZ»)
Я пробовал использовать вспомогательную функцию decrypt()
, но не повезло.
Как я могу конвертировать ток сброса пароля Я вытаскиваю из таблицы password_resets
в соответствии с тем, что Laravel отправляет пользователю?
Не уверен, что это актуально, но я обновил свое приложение с 5.3 до 5.4.
Это сладкое решение, THX для обмена! – superfly
@pinguinjkeke не могли бы вы объяснить, почему вы используете Notification :: fake(); почему мы используем оповещение здесь ...? – usama
Каналы уведомлений @usama Laravel можно также использовать для отправки Mailables. Начиная с некоторого времени стандартное письмо сброса пароля отправляется как уведомление. Я использую '' 'Notification :: fake()' '' для целей тестирования, и вызывать фальшивые уведомления не будут отправлены реальными, просто сохраните информацию об этом внутри тестов. Проверьте эту ссылку: https://laravel.com/docs/5.4/mocking#notification-fake – pinguinjkeke