Вступление
Хотите начать быстро? Просто запустите новое приложение Laravel и перейдите в браузере или по любому другому URL-адресу, назначенному вашему приложению. Эта единственная команда позаботится о создании леса всей вашей системы аутентификации, включая сброс паролей!
php artisan make:auth
http://your-app.test/register
Большинство веб-приложений предоставляют пользователям возможность сбрасывать забытые пароли. Вместо того, чтобы заставлять вас повторно реализовывать это в каждом приложении, Laravel предоставляет удобные методы для отправки напоминаний пароля и выполнения сброса пароля.
Прежде чем использовать функции сброса пароля в Laravel, ваш пользователь должен использовать эту черту.
Illuminate\Notifications\Notifiable
База данных
Для начала убедитесь, что ваша модель выполняет контракт. Модель входит в рамках уже реализует этот интерфейс, и использует признак , чтобы включать в себя методы , необходимые для реализации интерфейса.App\User
Illuminate\Contracts\Auth\CanResetPassword
App\User
Illuminate\Auth\Passwords\CanResetPassword
Генерация таблицы сброса токенов
Затем необходимо создать таблицу для хранения токенов сброса пароля. Миграция для этой таблицы включена в Laravel из коробки и находится в каталоге. Итак, все, что вам нужно сделать, это запустить миграцию базы данных:database/migrations
php artisan migrate
Маршрутизация
Laravel включает в себя и классы, которые содержат логику, необходимую для пересылки ссылок по электронной почте и сброса паролей пользователей. Все маршруты, необходимые для сброса пароля, могут быть созданы с помощью команды Artisan:Auth\ForgotPasswordController
Auth\ResetPasswordController
make:auth
php artisan make:auth
Просмотры
Опять же, Laravel сгенерирует все необходимые представления для сброса пароля при выполнении команды. Эти представления размещены в . Вы можете настроить их по мере необходимости для вашего приложения.make:auth
resources/views/auth/passwords
После сброса паролей
После того, как вы определили маршруты и представления для сброса паролей вашего пользователя, вы можете получить доступ к маршруту в вашем браузере по адресу . Входит в рамки уже включает в себя логику , чтобы отправить ссылку для сброса пароля по электронной почте, а включает в себя логику для сброса пользовательских паролей./password/reset
ForgotPasswordController
ResetPasswordController
После сброса пароля пользователь автоматически войдет в приложение и будет перенаправлен на /home
. Вы можете настроить местоположение перенаправления сброса почтового пароля, определив redirectTo
свойство в ResetPasswordController
:
protected $redirectTo = '/dashboard';
По умолчанию токены сброса пароля истекают через час. Вы можете изменить это с помощью
expire
опции сброса пароля в вашем файле.config/auth.php
Настройка
Настройка защиты аутентификации
В вашем файле конфигурации вы можете настроить несколько «охранников», которые могут использоваться для определения поведения аутентификации для нескольких пользовательских таблиц. Вы можете настроить включенный для использования защиты по вашему выбору, переопределив метод на контроллере. Этот метод должен вернуть экземпляр guard:auth.php
ResetPasswordController
guard
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.php
ForgotPasswordController
ResetPasswordController
broker
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 комментариев