بازنشانی رمزهای عبور
معرفی
می خواهید سریع شروع کنید؟ بسته 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));}