captcha_check($captcha)的返回值总是false
来源:6-8 ajax登录-基本参数校验(普通方式校验)

dannydyf
2020-04-02
老师
关于在admin应用下的login控制器下的check方法中,加入以下代码:
if(!captcha_check($captcha)){
return show(config("status.error"),lang('incorrect_captcha'));
}
但是captcha_check($captcha)的返回值总是false, 检查过app\middleware.php 内的 Session初始化已打开,如下:
// Session初始化
\think\middleware\SessionInit::class
我也试过 dump(session(‘captcha’))后,得到以下值
^ array:1 [
"key" => "$2y$10$5VLql8/yKnkcuMQBgFvmwu9gv24n3uwDNMyfjFzVi1jtHS2aKa0kq"]
追踪到 \vendor\topthink\think-captcha\src\Captcha.php的以下位置,发现是$res 的值是false, 而 $code是获得我所输入的正确的验证码的。
/**
* 验证验证码是否正确
* @access public
* @param string $code 用户验证码
* @return bool 用户验证码是否正确
*/
public function check(string $code): bool
{
if (!$this->session->has('captcha')) {
return false;
}
$key = $this->session->get('captcha.key');
$code = mb_strtolower($code, 'UTF-8');
$res = password_verify($code, $key);
if ($res) {
$this->session->delete('captcha');
}
return $res;
}
请问是我哪里还没有设置好吗?
写回答
3回答
-
野生码农在线co腚
2020-04-03
追踪到 \vendor\topthink\think-captcha\src\Captcha.php的以下位置,发现是$res 的值是false
check方法每一步都打印了吗
halt($this->session->has('captcha'));
halt($this->session->get('captcha.key'))
...
...
062020-04-03 -
dannydyf
提问者
2020-04-03
已经装了,验证码能正常显示的。
012020-10-05 -
面对疾风吧SSS
2020-04-02
是不是没有composer扩展包呀
00
相似问题