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

Метод reset

Метод reset класса Password применяется для завершения процесса сброса пароля. Он проверяет корректность токена, переданного пользователю по электронной почте, и обновляет пароль в базе данных. Первым параметром принимается массив с данными (email, password, password_confirmation, token), вторым - колбэк, который выполняется после успешного обновления пароля, третьим - опциональный параметр для указания имени guard.

Синтаксис

<?php use Illuminate\Support\Facades\Password; Password::reset($credentials, $callback, $guard = null); ?>

Пример

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

<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Password; use Illuminate\Support\Facades\Hash; use App\Models\User; class ResetPasswordController extends Controller { public function reset(Request $request) { $credentials = [ 'email' => $request->input('email'), 'password' => $request->input('password'), 'password_confirmation' => $request->input('password_confirmation'), 'token' => $request->input('token'), ]; $res = Password::reset($credentials, function (User $user, $password) { $user->password = Hash::make($password); $user->save(); }); return $res === Password::PASSWORD_RESET ? response()->json(['message' => 'Password has been reset']) : response()->json(['message' => 'Invalid token or email'], 400); } } ?>

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

{"message": "Password has been reset"}

Пример

Давайте обработаем ошибку сброса пароля при неверном токене:

<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Password; use Illuminate\Support\Facades\Hash; use App\Models\User; class ResetPasswordController extends Controller { public function reset(Request $request) { $credentials = [ 'email' => 'user@example.com', 'password' => 'newpassword', 'password_confirmation' => 'newpassword', 'token' => 'invalid_token_12345', ]; $res = Password::reset($credentials, function (User $user, $password) { $user->password = Hash::make($password); $user->save(); }); if ($res === Password::INVALID_TOKEN) { echo 'Invalid token provided'; } elseif ($res === Password::INVALID_USER) { echo 'User not found'; } else { echo 'Password reset successful'; } } } ?>

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

"Invalid token provided"

Пример

Давайте выполним сброс пароля с использованием кастомного guard:

<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Password; use Illuminate\Support\Facades\Hash; use App\Models\Admin; class ResetPasswordController extends Controller { public function reset(Request $request) { $credentials = [ 'email' => 'admin@example.com', 'password' => 'newadminpassword', 'password_confirmation' => 'newadminpassword', 'token' => $request->input('token'), ]; $res = Password::broker('admins')->reset($credentials, function (Admin $admin, $password) { $admin->password = Hash::make($password); $admin->save(); }); echo $res === Password::PASSWORD_RESET ? 'Password reset successful for admin' : 'Failed to reset password'; } } ?>

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

"Password reset successful for admin"

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

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