登录表单验证

这里用的是Vue框架做的登录表单验证,登录页面一定会和数据库的用户信息进行交互,我们一可以在项目包里引入axios,代码如下

npm install axios

我们装好需要的项目包后可以在项目里面建立一个Login.vue组件,在设置好router后,我们可以进入Login.vue,这里的注册登录用的是手机号,与密码,代码如下

<template>
<div>
<input
   type="text"
   placeholder="手机账户"
   maxlength="11"
   required
   autofocus
   v-model="phone"
  />
     
 <input type="password" placeholder="密码" required v-model="pwd" />
<button class="loginbtn" @click="checkForm">登录</button>
</div>
</template>
<script>
export default {
  components: {},
  data() {
    return {
      phone: "", // 绑定手机号输入框的值
      pwd: "",
    };
  },

  methods: {
    /** 验证表单 */
    checkForm() {
      if (this.checkPhone() && this.checkPwd()) {
        // console.log("表单验证通过,执行登录...");
        let params = `phone=${this.phone}&password=${this.pwd}`;
        this.axios.post("/login", params).then((res) => {
          // console.log("登录成功", res);
          if (res.data.code == 200) {
            //登录成功
            this.$toast({
              message: "登录成功",
              position: "bottom",
              duration: 2000,
            });
            // 登录成功,更新vuex
            //设置Vuex登录标志为true,默认userLogin为false
            this.$store.dispatch("userLogin", true);
            //Vuex在用户刷新的时候userLogin会回到默认值false,所以我们需要用到HTML5储存
            //我们设置一个名为Flag,值为isLogin的字段,作用是如果Flag有值且为isLogin的时候,证明用户已经登录了。
            localStorage.setItem("Flag", "isLogin");
            // console.log(isLogin);
            // 登录成功成功跳转
            this.$store.commit('loginOK',this.phone)
            this.$router.push("/home/index");
          } else {
            //登录失败
            this.$messagebox("提示", "账号密码错误,请重新登录");
          }
        });
      }
    },
    checkPwd() {
      /** 验证密码 */
      let reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,12}$/;
      if (reg.test(this.pwd)) {
        // 验证成功
        return true;
      } else {
        // 验证失败
         this.$toast({
              message: "密码输入有误",
              position: "center",
              duration: 1000,
            });
        return false;
      }
    },
    checkPhone() {
      /** 验证账号 */
      let reg = /^1[3-9]\d{9}$/;
      if (reg.test(this.phone)) {
        // 验证成功
        return true;
      } else {
        // 验证失败
         this.$toast({
              message: "账号输入有误",
              position: "center",
              duration: 1000,
            });
        return false;
      }
    }
}
</script>

 我们首先在data里面保存好手机号密码phone和pwd,然后我们在method里面可以验证手机号和密码的正则表达式,然后通过判断是否与数据库里面有重复信息来判断是否能够通过验证。

this.$toast是个弹框来提醒用户登录是否成功

this.$toast({
              message: "密码输入有误",
              position: "center",
              duration: 1000,
            });

 登录状态可以用localStorage来进行封装,代码里面已经出现,可以看我的另一个文章讲保存登陆状态。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值