这次的项目登录时需要调用接口获取验证码,我们需要生成一个随机的字符串传给后端然后那去验证码。项目的需求是:1.刷新页面每次传的字符串相同,2.关闭浏览器后或者登录成功退出之后重新登录则该传新的字符串。
以下是项目界面:
我的做法是:
1.安装随机生成字符串的插件uuid
npm install -S uuid
2.项目中引用
// 生成随机字符串
import { v4 as uuidv4 } from 'uuid'
3.js代码
因为需求是关闭浏览器或者登陆之后就让随机生成的字符串不同,所以我这里用到了sessionStorage来存储生成的字符串。(注:sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。)
我这里加了一个if判断:如果sessionStorage中没有sign就获取并且储存进去,如果有的话就直接拿去,这也是为了实现页面刷新sign的值不变这个功能。
// 获取验证码
function method() {
if (!sessionStorage.getItem('sign')) {
//用uuidv4()获取随机生成的字符串
sign.value = uuidv4()
//存储至sessionStorage
sessionStorage.setItem('sign', sign.value)
} else {
//拿取sign的值
sign.value = sessionStorage.getItem('sign')
}
//调用接口拿取后端返回的值生成验证码
getKaptcha(sign.value).then((res) => {
codeImg.value = 'data:image/png;base64,' + res.data.imgCode
})
}
然后登陆成功之后就删除sign这个标识
sessionStorage.removeItem('sign')