sadiqsalau/laravel-otp-password
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.
sadiqsalau/laravel-otp-password 适用场景与选型建议
sadiqsalau/laravel-otp-password 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 880 次下载、GitHub Stars 达 2, 最近一次更新时间为 2023 年 09 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 sadiqsalau/laravel-otp-password 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sadiqsalau/laravel-otp-password 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 880
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-09-13