📜  Yii-临时验证(1)

📅  最后修改于: 2023-12-03 14:48:40.812000             🧑  作者: Mango

Yii-临时验证

简介

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 - 验证码长度,默认为 6
  • codeExpiration - 验证码有效期(秒),默认为 60
  • type - 验证码类型,参见“支持的类型”小节。
参考文献