РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
766 of 1392 menu

Метод sendResetLink

Метод sendResetLink класса Password предназначен для инициирования процесса восстановления пароля. Он принимает массив с данными пользователя, обычно содержащий поле 'email', и отправляет на указанный адрес ссылку для сброса пароля. Метод возвращает строковый код статуса, который позволяет определить результат операции: успешно ли отправлена ссылка или произошла ошибка.

Первым параметром метод принимает массив с данными (обязательно должен содержать ключ 'email'), вторым параметром можно передать замыкание, которое будет вызвано после успешной отправки письма.

Синтаксис

<?php use Illuminate\Support\Facades\Password; $status = Password::sendResetLink($credentials); $status = Password::sendResetLink($credentials, $callback); ?>

Пример

Давайте отправим ссылку для восстановления пароля пользователю с почтой 'user@example.com':

<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Password; class ForgotPasswordController extends Controller { public function sendResetLink(Request $request) { $request->validate(['email' => 'required|email']); $credentials = ['email' => $request->email]; $status = Password::sendResetLink($credentials); if ($status === Password::RESET_LINK_SENT) { echo "Password reset link sent successfully"; } else { echo "Failed to send reset link: " . $status; } } } ?>

Результат выполнения кода при успешной отправке:

"Password reset link sent successfully"

Результат выполнения кода при ошибке:

"Failed to send reset link: passwords.user"

Пример

Используем метод с колбэком для дополнительной логики после отправки письма. Колбэк получает объект пользователя и отправляемое уведомление:

<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Password; class ForgotPasswordController extends Controller { public function sendResetLink(Request $request) { $request->validate(['email' => 'required|email']); $status = Password::sendResetLink( ['email' => $request->email], function ($user, $token) { echo "Token generated for user: " . $user->email; } ); if ($status === Password::RESET_LINK_SENT) { echo " - Link sent successfully"; } else { echo " - Failed to send link"; } } } ?>

Результат выполнения кода:

"Token generated for user: user@example.com - Link sent successfully"

Пример

Обрабатываем все возможные статусы ответа. Метод может возвращать различные строки-константы из класса Password:

<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Password; class ForgotPasswordController extends Controller { public function sendResetLink(Request $request) { $request->validate(['email' => 'required|email']); $status = Password::sendResetLink( $request->only('email') ); switch ($status) { case Password::RESET_LINK_SENT: echo "Reset link sent to your email address"; break; case Password::INVALID_USER: echo "We can't find a user with that email address"; break; case Password::RESET_THROTTLED: echo "Please wait before retrying"; break; default: echo "An error occurred"; break; } } } ?>

Результат выполнения кода при успешной отправке:

"Reset link sent to your email address"

Смотрите также

  • метод reset,
    который выполняет сброс пароля на новый
  • метод attempt,
    который выполняет попытку аутентификации пользователя
  • метод login,
    который выполняет аутентификацию пользователя
  • класс Password,
    который предоставляет функционал для работы с паролями
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить