Вступление
Хотите начать быстро? Просто запустите новое приложение Laravel и перейдите в браузере или по любому другому URL-адресу, назначенному вашему приложению. Эта единственная команда позаботится о создании леса всей вашей системы аутентификации, включая сброс паролей!
php artisan make:authhttp://your-app.test/register
Большинство веб-приложений предоставляют пользователям возможность сбрасывать забытые пароли. Вместо того, чтобы заставлять вас повторно реализовывать это в каждом приложении, Laravel предоставляет удобные методы для отправки напоминаний пароля и выполнения сброса пароля.
Прежде чем использовать функции сброса пароля в Laravel, ваш пользователь должен использовать эту черту.
Illuminate\Notifications\Notifiable
База данных
Для начала убедитесь, что ваша модель выполняет контракт. Модель входит в рамках уже реализует этот интерфейс, и использует признак , чтобы включать в себя методы , необходимые для реализации интерфейса.App\UserIlluminate\Contracts\Auth\CanResetPasswordApp\UserIlluminate\Auth\Passwords\CanResetPassword
Генерация таблицы сброса токенов
Затем необходимо создать таблицу для хранения токенов сброса пароля. Миграция для этой таблицы включена в Laravel из коробки и находится в каталоге. Итак, все, что вам нужно сделать, это запустить миграцию базы данных:database/migrations
php artisan migrate
Маршрутизация
Laravel включает в себя и классы, которые содержат логику, необходимую для пересылки ссылок по электронной почте и сброса паролей пользователей. Все маршруты, необходимые для сброса пароля, могут быть созданы с помощью команды Artisan:Auth\ForgotPasswordControllerAuth\ResetPasswordControllermake:auth
php artisan make:auth
Просмотры
Опять же, Laravel сгенерирует все необходимые представления для сброса пароля при выполнении команды. Эти представления размещены в . Вы можете настроить их по мере необходимости для вашего приложения.make:authresources/views/auth/passwords
После сброса паролей
После того, как вы определили маршруты и представления для сброса паролей вашего пользователя, вы можете получить доступ к маршруту в вашем браузере по адресу . Входит в рамки уже включает в себя логику , чтобы отправить ссылку для сброса пароля по электронной почте, а включает в себя логику для сброса пользовательских паролей./password/resetForgotPasswordControllerResetPasswordController
После сброса пароля пользователь автоматически войдет в приложение и будет перенаправлен на /home. Вы можете настроить местоположение перенаправления сброса почтового пароля, определив redirectToсвойство в ResetPasswordController:
protected $redirectTo = '/dashboard';
По умолчанию токены сброса пароля истекают через час. Вы можете изменить это с помощью
expireопции сброса пароля в вашем файле.config/auth.php
Настройка
Настройка защиты аутентификации
В вашем файле конфигурации вы можете настроить несколько «охранников», которые могут использоваться для определения поведения аутентификации для нескольких пользовательских таблиц. Вы можете настроить включенный для использования защиты по вашему выбору, переопределив метод на контроллере. Этот метод должен вернуть экземпляр guard:auth.phpResetPasswordControllerguard
use Illuminate\Support\Facades\Auth;
/**
* Get the guard to be used during password reset.
*
* @return \Illuminate\Contracts\Auth\StatefulGuard
*/
protected function guard()
{
return Auth::guard('guard-name');
}
Настройка брокера паролей
В вашем файле конфигурации вы можете настроить несколько «посредников» для паролей, которые могут использоваться для сброса паролей для нескольких пользовательских таблиц. Вы можете настроить включенный и использовать брокера по вашему выбору, переопределив метод:auth.phpForgotPasswordControllerResetPasswordControllerbroker
use Illuminate\Support\Facades\Password;
/**
* Get the broker to be used during password reset.
*
* @return PasswordBroker
*/
public function broker()
{
return Password::broker('name');
}
Сбросить настройки электронной почты
Вы можете легко изменить класс уведомлений, используемый для отправки пользователю ссылки на сброс пароля. Для начала переопределите sendPasswordResetNotificationметод в вашей Userмодели. В рамках этого метода вы можете отправить уведомление, используя любой выбранный вами класс уведомлений. Сброс пароля $token- это первый аргумент, полученный методом:
/**
* Send the password reset notification.
*
* @param string $token
* @return void
*/
public function sendPasswordResetNotification($token)
{
$this->notify(new ResetPasswordNotification($token));
}
0 комментариев