sanjabteam/verify

通过一次性密码验证用户手机号码。

v5.0.0 2024-07-29 10:57 UTC

This package is auto-updated.

Last update: 2024-09-29 11:15:41 UTC


README

Latest Stable Version Total Downloads Build Status Code Style Code Coverage License

通过一次性密码验证您的用户手机/电子邮件。

安装

您可以通过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)。请参阅许可证文件以获取更多信息。