老师
关于在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;
}
请问是我哪里还没有设置好吗?