نسخه:

بازنشانی رمزهای عبور

معرفی

می خواهید سریع شروع کنید؟ بسته Composer را نصب کرده laravel/ui و php artisan ui vue --auth در یک برنامه جدید لاراول اجرا کنید. پس از انتقال پایگاه داده خود، مرورگر خود را به http://your-app.test/register یا هر URL دیگری که به برنامه شما اختصاص داده شده است پیمایش کنید. این دستور واحد از داربست کل سیستم احراز هویت شما، از جمله بازنشانی رمزهای عبور، مراقبت می کند!

اکثر برنامه های کاربردی وب راهی را برای کاربران فراهم می کنند تا رمزهای عبور فراموش شده خود را بازنشانی کنند. لاراول به جای اینکه شما را مجبور به اجرای مجدد آن در هر برنامه کند، روش های مناسبی برای ارسال یادآوری رمز عبور و انجام بازنشانی رمز عبور ارائه می دهد.

قبل از استفاده از ویژگی های بازنشانی رمز عبور لاراول، کاربر شما باید از این Illuminate\Notifications\Notifiable ویژگی استفاده کند.

ملاحظات پایگاه داده

برای شروع، بررسی کنید که App\User مدل شما Illuminate\Contracts\Auth\CanResetPassword قرارداد را اجرا می کند. مدل App\User موجود با فریم ورک قبلاً این رابط را پیاده‌سازی می‌کند و از این Illuminate\Auth\Passwords\CanResetPassword ویژگی برای گنجاندن روش‌های مورد نیاز برای پیاده‌سازی رابط استفاده می‌کند.

ایجاد مهاجرت جدول رمز بازنشانی

در مرحله بعد، باید جدولی برای ذخیره رمزهای بازنشانی رمز عبور ایجاد شود. مهاجرت این جدول در laravel/ui بسته Composer گنجانده شده است. پس از نصب laravel/ui بسته، می توانید از migrate دستور برای ایجاد جدول پایگاه داده رمز بازنشانی رمز عبور استفاده کنید:

composer require laravel/ui
 
php artisan migrate

مسیریابی

لاراول شامل Auth\ForgotPasswordController و Auth\ResetPasswordController کلاس هایی است که شامل منطق لازم برای ایمیل کردن پیوندهای بازنشانی رمز عبور و بازنشانی رمزهای عبور کاربر است. همه مسیرهای مورد نیاز برای انجام بازنشانی رمز عبور ممکن است با استفاده از laravel/ui بسته Composer ایجاد شوند:

composer require laravel/ui
 
php artisan ui vue --auth

بازدیدها

برای ایجاد تمام نمای لازم برای تنظیم مجدد رمزهای عبور، می توانید از laravel/ui بسته Composer استفاده کنید:

composer require laravel/ui
 
php artisan ui vue --auth

این نماها در resources/views/auth/passwords . شما آزاد هستید که آنها را در صورت نیاز برای برنامه خود سفارشی کنید.

پس از تنظیم مجدد رمزهای عبور

هنگامی که مسیرها و نماها را برای بازنشانی گذرواژه‌های کاربر خود تعریف کردید، می‌توانید در مرورگر خود به مسیر دسترسی پیدا کنید /password/reset . این ForgotPasswordController چارچوب از قبل شامل منطق ارسال ایمیل‌های پیوند بازنشانی رمز عبور است، در حالی که ResetPasswordController منطق بازنشانی رمزهای عبور کاربر را شامل می‌شود.

پس از بازنشانی رمز عبور، کاربر به طور خودکار وارد برنامه می شود و به آن هدایت می شود /home . می‌توانید مکان تغییر مسیر بازنشانی گذرواژه پست را با تعریف یک redirectTo ویژگی در ResetPasswordController :

protected $redirectTo = '/dashboard';

به طور پیش فرض، رمزهای بازنشانی رمز عبور پس از یک ساعت منقضی می شوند. شما می توانید این مورد را از طریق expire گزینه تنظیم مجدد رمز عبور در config/auth.php فایل خود تغییر دهید.

سفارشی سازی

سفارشی سازی گارد احراز هویت

در فایل پیکربندی خود 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));
}