vue 项目中,因为需要一个功能:登录后 进入首页并判断当前密码是否是弱密码,如果是要弹出修改密码框,必须修改密码。
最开始,想要通过在login 页面添加弹框,判断密码是否是弱密码,但是发现,跳转到首页后 弹框并不显示。
然后 想要在全局定义一个变量 作为 密码的标识。
在登录页引用这个变量,判断密码是否为弱密码,如果为弱密码则修改标识。
然后在首页也引用 这个变量,判断这个变量 如果这个变量为 true 弹出修改密码的弹框。
但是发现这里的全局变量(isPassword) 是只读 不能修改.
现在的方法是:
在main.js里注册一个全局变量
,就可以在登录页引入后 进行判断和修改
在main.js定义一个全局变量后,刷新会有问题,登录时如果为弱密码 修改标识符后,再次刷新页面后,标识符会重新加载为原来main.js定义的false。
后来 选择 在本地 localStorage存储一个变量,
const validPassw = this.entity.password;
const reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$/; // 如果当前密码为强密码(不为弱密码) if (validPassw.length < 6 || !validPassw.match(reg)) { window.localStorage.setItem("x",1); }
在进入首页时 判断 localStorage 的值
if (window.localStorage.getItem("x") == 1) { this.modifyPassword.show = true; this.warning("当前密码为弱密码,请及时修改密码!"); }
存入 localStorage 仍有问题,后来存入数据库中,
getPassWord() { if (!this.adminInfo.isStrong) { //adminInfo 是在登录时保存下来的数据 this.modifyPassword.show = true; this.warning("当前密码为弱密码,请及时修改密码!"); } },