📅  最后修改于: 2023-12-03 14:48:40.812000             🧑  作者: Mango
Yii-临时验证是一款基于 PHP 框架 Yii 的扩展,旨在提供一种简单、快速的临时验证(OTP)方式,增强系统的安全性。
使用 Composer 安装:
composer require iakio/yii-temporary-authentication
use iakio\yii\temporaryauthentication\TemporaryAuthentication;
// 生成 6 位数字验证码,有效期为 60 秒
$code = TemporaryAuthentication::generate();
// 生成 8 位随机字符串验证码,有效期为 180 秒
$code = TemporaryAuthentication::generate(8, 180, TemporaryAuthentication::TYPE_RANDOM_STRING);
// 生成 4 位自定义字符串验证码 "ABCD",有效期为 300 秒
$code = TemporaryAuthentication::generate(4, 300, TemporaryAuthentication::TYPE_CUSTOM_STRING, 'ABCD');
use iakio\yii\temporaryauthentication\TemporaryAuthentication;
// 校验验证码是否正确
$isValid = TemporaryAuthentication::validate('112233', '112233'); // true
// 校验指定验证码是否正确
$isCodeValid = TemporaryAuthentication::validateCode('112233', '112233'); // true
// 校验验证码是否过期
$isExpired = TemporaryAuthentication::isExpired('112233'); // false
TemporaryAuthentication::TYPE_TIME
- 基于时间生成验证码TemporaryAuthentication::TYPE_RANDOM_NUMBER
- 基于随机数生成数字验证码TemporaryAuthentication::TYPE_RANDOM_STRING
- 基于随机数生成字符串验证码TemporaryAuthentication::TYPE_CUSTOM_STRING
- 基于自定义字符串生成验证码在 Yii 的应用配置文件中,可以配置扩展的默认值:
'components' => [
'temporaryAuthentication' => [
'class' => 'iakio\yii\temporaryauthentication\TemporaryAuthentication',
'codeLength' => 6,
'codeExpiration' => 60,
'type' => TemporaryAuthentication::TYPE_TIME,
],
],
codeLength
- 验证码长度,默认为 6codeExpiration
- 验证码有效期(秒),默认为 60type
- 验证码类型,参见“支持的类型”小节。