重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
TODO:Laravel增加验证码
1. 先聊聊验证码是什么,有什么作用?
验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个***对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。
随着科技的不断进步,图片识别技术的不断提高,出现了机器识别验证码和第三方人为识别验证,普通的验证码已经起不到很全面的防护作用;所以验证码自身也在不多发展,出现了动画验证码,手机短信验证码,手机语音验证码,视频验证码,拼图验证码,问题验证码。
但是验证码给用户代码的体验是不够理想,更多人觉得验证码是多余的。但是为了减少恶意,批量的访问,验证码还是有它出现的理由。
2. Laravel验证码扩展,我使用一个第三方可扩展“mews/captcha”,使用简单,可配置多主题。
3. 配置方法,在composer.json中require加入
“mews/captcha”: “~2.0”
运行
composer update
即可安装成功
4. 配置captcha,在config/app.php的providers的key值增加
MewsCaptchaCaptchaServiceProvider::class,
Aliases的key值增加
‘Captcha’ => MewsCaptchaFacadesCaptcha::class,
回到项目控制台运行
$ php artisan vendor:publish
可生成config/captcha.php,可进行配置不同验证码主题,如长度,颜色,混淆度等
5. 在登陆页面login.blade.php增加显示验证码代码
captcha_src()是返回URL,如果要返回HTML可以用captcha_img();只要在括号中填写不同主题名,即可显示不同验证码,如captcha_src(‘flat’),captcha_img(‘inverse’)。
6. 运用PHP的Trait的特性,重写登录验证。在登陆的LoginController.php重写登录、验证、验证码验证
7. 启动服务,访问登录页面,可以正常使用验证码了。
8. 到此Laravel的验证码功能添加成功。
wxgzh:ludong86
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。