vue 美食杰项目 登录验证

		登录验证是我们在进入页面中必须要进行的操作。

1.登录验证我们要先在路由中(router),设置一个路由守卫来判断你进入的页面需不需要进行登录,
然后在进行判断是否已经登录,在然后验证你的登录是否合法。

router.beforeEach( async (to,form,next) => {
    // 进入路由守卫时,向后端发送token,验证是否合法
  const data =  await userInfo()
  console.log(data.data);
   if(to.matched.some(item => item.meta.login)){
    const token =   localStorage.getItem('token')
    // !!是将数据类型转换为布尔值,如果有数据就转换成true,没有数据或者是空的转换为false
    const vv = !!token
        if(vv){
          if(data.error === 400){    // 后端告诉你,token不合法
            next({name:'login'})
            localStorage.removeItem('token')
            return;
          }
            next()
            return
        }
        if(!vv && to.name === 'login'){
            next()
        }
        if(!vv && to.name !== 'login'){
            next({name:'login'})
        }

   }else{
       next()
   }
})

然后就是在我们的路由中使用meta来判断没登录时点击页面要先登录,然后通过!!本地存储有没有值,就是有没有登录,最后在判断你登录的账号是否合法。

在这里插入图片描述

 <el-form
      label-position="top"
      label-width="100px" class="demo-ruleForm"
      :model = 'ruleFrom'
      :rules = 'rules'
    >
      <el-form-item label="用户名" prop="name">
        <el-input type="text" v-model="ruleFrom.name" placeholder="写上你的名字"></el-input>
      </el-form-item>

      <el-form-item label="密码" prop="password">
        <el-input type="password" v-model="ruleFrom.password"></el-input>
      </el-form-item>

      <el-form-item>
        <el-button type="primary" @click="submitForm()">提交</el-button>
        <el-button>重置</el-button>
      </el-form-item>


    </el-form>
js代码
     data() {
    return {
      ruleFrom:{
        name:'',
      password:''
      },

      rules:{
        name:[{
          required:true,message:'请输入用户名',trigger:'blur'
        }],
        password:[{
             required:true,message:'请输入用户名',trigger:'blur'
        }]
      }


      
    };
  },
方法
  submitForm(){
      login({
        name:this.ruleFrom.name,   
        password:this.ruleFrom.password
      }).then((data) => {
        console.log(data);
        if(data.code == 0){
          
          localStorage.setItem('token',data.data.token)
            window.location.href = '/';
        }
        if(data.code == 1){
          this.$message.error(data.mes)
        }
      })
      
    }

/**
 * 账号登录
 * @export
 * @param {Object} params - 
 * @param {string} params.name - 用户名
 * @param {string} params.password - 密码
 * @returns
 */
export async function login(params){
  return  await http.post('/user/login', params);
}

代码如上,我们在提交事件从后端拿到登录的api方法,通过then把你验证正确账号的token值保存在本地


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值