sanjabteam / verify
通过一次性密码验证用户手机号码。
v5.0.0
2024-07-29 10:57 UTC
Requires
- php: ^7.3|^8
- illuminate/support: ^6|^7|^8|^9|^10|^11
Requires (Dev)
- orchestra/testbench: 3.8.*|^4|^5.1|^7.4|^8.0.4|v9.0.0
- phpunit/phpunit: ^8.4|^9.0|^10.0|^11.0
README
通过一次性密码验证您的用户手机/电子邮件。
安装
您可以通过composer安装此包。
composer require sanjabteam/verify
使用
php artisan vendor:publish --provider=SanjabVerify\VerifyServiceProvider
配置
code
: 唯一代码生成器配置。
resend_delay
: 发送代码之间的重发延迟(秒)。
expire_in
: 发送代码后的过期时间(分钟)。
max_attemps
: 最大代码检查尝试次数。
max_resends
: 一小时内的最大重发次数。
per_session
: 基于用户会话的一小时内的最大重发次数。(限制:如果用户清除cookie)per_ip
: 基于用户IP的一小时内的最大重发次数。(限制:如果两个不同的用户使用同一个代理)
使用方法
向用户发送代码
use Verify; use App\Helpers\SmsVerifyMethod; $result = Verify::request($request->input('mobile'), SmsVerifyMethod::class); if ($result['success'] == false) { // If user exceed limitation return redirect()->back()->with('error', $result['message']); // Show error message }
App\Helpers\SmsVerifyMethod
是您的发送方法类,您需要创建如下。
namespace App\Helpers; use SanjabVerify\Contracts\VerifyMethod; class SmsVerifyMethod implements VerifyMethod { public function send(string $receiver, string $code) { // Send code to receiver if (send_sms($receiver, 'Your code is :'.$code) == 'success') { return true; // If code sent successfuly then return true } return false; // If send code failed return false } }
验证
您可以使用请求验证来验证代码。
$request->validate([ 'code' => 'required|sanjab_verify:mobile' ]);
mobile
是您的接收者,在这种情况下是手机。
您也可以手动验证。
use Verify; $result = Verify::verify($request->input('mobile'), $request->input('code')); if ($result['success'] == false) { // Show error $result['message'] }
注意:您只能验证一次代码,所以如果需要在两个不同的请求中检查代码,则应使用类似session的东西来处理。
贡献
欢迎贡献!
- 分支项目
- 克隆您的项目(git clone https://github.com/your_username/verify.git)
- 创建新分支(git checkout -b your_feature)
- 提交您的更改(git commit -m 'new feature')
- 推送到分支(git push origin your_feature)
- 打开Pull Request
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。