登录时判断强弱密码

Posted on 2019-10-24 16:07  嗷呜~  阅读(1391)  评论(2编辑  收藏  举报

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("当前密码为弱密码,请及时修改密码!");
      }

    },