sadiqsalau/laravel-otp-password
最新稳定版本:v1.0.1
Composer 安装命令:
composer require sadiqsalau/laravel-otp-password
包简介
OTP Password Reset Package for Laravel
README 文档
README
Introduction
This package makes it a breeze implementing password reset using the sadiqsalau/laravel-otp package.
Installation
Install via composer: This package depends on sadiqsalau/laravel-otp, you need to install the both of them.
composer require sadiqsalau/laravel-otp sadiqsalau/laravel-otp-password
Usage
To use this package, you must have implemented your OTP verification system (https://github.com/sadiqsalau/laravel-otp#usage).
Sending Reset OTP
Sending password reset OTP is similar to sending password reset link (https://laravel.com/docs/passwords).
use Illuminate\Http\Request; use SadiqSalau\LaravelOtpPassword\Facades\OtpPassword; Route::post('/forgot-password', function (Request $request) { $request->validate(['email' => 'required|email']); $status = OtpPassword::sendOTP( $request->only('email') ); return $status === OtpPassword::OTP_SENT ? back()->with(['status' => __($status)]) : back()->withErrors(['email' => __($status)]); })->middleware('guest')->name('password.email');
Once the OTP has been sent, the user is expected to verify their OTP code, upon verification a password reset session would be created. This session will last for the number of minutes configured in config/auth.php.
'passwords' => [ 'users' => [ 'provider' => 'users', 'expire' => 15 ], ],
Resetting Password
use App\Models\User; use Illuminate\Auth\Events\PasswordReset; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; use Illuminate\Validation\Rules; use SadiqSalau\LaravelOtpPassword\Facades\OtpPassword; Route::post('/reset-password', function (Request $request) { $request->validate([ 'email' => ['required', 'email'], 'password' => ['required', 'confirmed', Rules\Password::defaults()], ]); $status = OtpPassword::reset( $request->only( 'email', 'password', 'password_confirmation' ), function ($user) use ($request) { $user->forceFill([ 'password' => Hash::make($request->password), 'remember_token' => Str::random(60), ])->save(); event(new PasswordReset($user)); } ); return $status === OtpPassword::PASSWORD_RESET ? redirect()->route('login')->with('status', __($status)) : back()->withErrors(['email' => [__($status)]]); })->middleware('guest')->name('password.update');
API
-
OtpPassword::sendOtp(array $credentials)- Send password reset OTP -
OtpPassword::reset(array $credentials, Closure $callback)- Attempt to reset the password.
Contribution
Contributions are welcomed.
统计信息
- 总下载量: 801
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-09-13