首先可以在前端js生成一个uuid,代码可以这样:
function generateUUID() {
var d = new Date().getTime();
if(window.performance && typeof window.performance.now === "function"){
d += performance.now(); //use high-precision timer if available
}
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = (d + Math.random()*16)%16 | 0;
d = Math.floor(d/16);
return (c=='x' ? r : (r&0x3|0x8)).toString(16);
});
return uuid;
}
通过image标签的src配置的url把uuid发送给flask 比如:
unction generateImageCode() {
imageCodeId = generateUUID();
var imageCodeUrl = "/..../imagecode?cur=" + imageCodeId + "&pre=" + preImageCodeId;
$("img").attr("src", imageCodeUrl);
preImageCodeId = imageCodeId
}
然后flask生成图片验证码(代码在我的资源里),然后将生成的验证码的图片信息返回前端,当前验证码的内容保存到redis中,上一个验证码删除掉,保存格式可以string。
当用户看到验证码图片输入验证码,提交内容,将用户提交的内容,和生成的验证码那次的uuid发送给flask,flask更具uuid在redis中去出正确的验证码内容,和用户提交的验证码比较,判断是否验证通过。