都知道APP不是用浏览器来的,所以验证码生成session cookie是行不通了。
一开始APP进入验证码界面,先让他请求一次服务器,生成key:code返回去。再把拿到的KEY带到服务器上面去生成图片。同时生成一个key:code再把key返回到客户端,当客户端验证图片的时候再把key再到服务器上去获取key里的code进行对比。一旦对比成功放行,对比失败。提示切换验证码。
按这流程先我用memcached 再本地安装了memcached测试都没有问题,但是拿到服务器上去,有时候就是命中不了。导致图片生成的时候老是有问题。后来采用了文件缓存。采用文件缓存来对比客户端提交上来的key.至少这样每次对比都是成功的。但memcached. 我不知道为什么那么容易不容易被命中。生成的缓存文件时候,把这个生成的文件我又保存到另一个文本文件里带上了时间。当每次生成图片的时候,我先会去读取出为个文本里超时的文件,然后把它删除掉。