public function actions()
{
return [
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => substr(mt_rand(1000,9999),0,4),//直到加了这个代码就出问题了
'minLength' => 4,
'maxLength' => 4,
],
'error' => [
'class' => 'yii\web\ErrorAction',
],
];
}
本来一切正常,字母显示4个,能正常验证登录。
为了降低验证码难度,想改成4个数字,添加了这行代码'fixedVerifyCode' => substr(mt_rand(1000,9999),0,4),
能正常显示4个数字了,但是输入正确的验证码后,就是提示验证码错误,这个该怎么排查原因?
使用 fixedVerifyCode
之后, 并没有写 session
.
也就是说, 使用了 fixedVerifyCode
之后 生成验证码的时候直接返回了 fixedVerifyCode
的值, 验证的时候 又是拿你输入的 和 fixedVerifyCode
的值做对比.. 而你的fixedVerifyCode
每次都变.
你看 fixedVerifyCode 注释, 讲的很清楚, 通常用在自动化测试 方便复制验证码的场景下使用.
非要使用四位数字的话, 继承并重写一下 yii\captcha\CaptchaAction
类里面的 生成验证码的策略吧.
“通常用在自动化测试 方便复制验证码的场景下使用”,不懂这句话是什么意思,求大神讲解。