Laravel中Mews Captcha如何设置显示5个字符?
解决Mews Captcha验证码字符数不生效的问题
你的问题核心是配置放错了位置,Mews Captcha有独立的配置文件,不是存在config/app.php里,按以下步骤调整就能解决:
1. 确认发布了Captcha的配置文件
如果之前没发布过,先执行这条命令生成独立的配置文件:
php artisan vendor:publish --provider="Mews\Captcha\CaptchaServiceProvider"
执行完后,config目录下会出现captcha.php文件,这才是Mews Captcha的配置入口。
2. 修改正确的配置项
打开config/captcha.php,找到默认的length参数,改成用env变量读取:
'length' => env('CAPTCHA_LENGTH', 5), // 第二个参数是默认值,设置为5即可
然后确保你的.env文件里已经配置:
CAPTCHA_LENGTH=5
3. 移除Blade里的字符截取逻辑
别手动截取验证码字符,因为Session里存储的是包生成的完整长度验证码,前端截取后用户输入的5位会和Session里的原内容不匹配,导致验证失败。直接用包提供的验证码生成方法即可。
4. 清除配置缓存
Laravel会缓存配置文件,新配置可能没即时生效,执行这条命令清除缓存:
php artisan config:clear
如果是生产环境,执行php artisan config:cache重新缓存配置。
做完这些,验证码就会生成5位字符了。
内容的提问来源于stack exchange,提问作者Pouya Vaghefi
相关产品推荐
相关产品推荐

