记一次网站验证码添加

需求

在登录页面加验证码功能

登录缺乏验证码保护

实现
思路:

  1. 搞清楚网站框架,调用框架在前台加验证码生成的模块
  2. 修改js,登录携带验证码,并使控制器正确处理验证码
  3. 登录失败刷新验证码

1.
根据simplewind判断是thinkcmf框架

根据目录结构,判断是CMFX框架,上网查了一下,很老的框架,上次更新都在2016年了。
然后基于thinkPHP 3.X的框架。
查阅官方文档https://www.thinkcmf.com/docs/cmfx/special/verifycode.html

grep命令找到登录页面:
themes\shop\Portal\login.html
在form表单添加一个验证码功能

修改public\assets\css\login.css 调节样式。

接下来添加验证码逻辑。

2.
找到点击登录的js
public\assets\js\login.js
取出form表单里的验证码,增加为控判断,不为空登录post请求就带着验证码发送

然后找到对应的Controller,通过请求地址得知,登录验证的逻辑应该在index相关的Controller的jmp_login()的方法中:

结合官方文档:

找到相关位置,先取出验证码,再通过框架接口判断验证码,错误返回错误信息:

自己定义一个错误代码,用于后面弹出对应错误代码的错误信息。
修改登录的JS,如果失败,弹出错误信息:

JS中弹出返回的信息:

自己定义一个错误代码,用于后面弹出对应错误代码的错误信息。
修改登录的JS,如果失败,弹出错误信息:


  1. 由于系统前端使用了jquery

直接通过jquery在登录失败后刷新验证码图片即可:

最后整个验证码功能基本完成:

Leave a Reply

Your email address will not be published. Required fields are marked *