Vue之beforeEach非登录不能访问的实现(代码亲测)


Posted in Javascript onJuly 18, 2019

后台的php请求就是接收这两个参数

login.vue

<template>
<div class=''>
  <input type="text" v-model="name" />
  <input type="password" v-model="password" />
  <button type="primary" @click="submitForm"><router-link :to="{path:'/'}">提交</router-link></button>
</div>
</template>

<script>
import axios from 'axios';
 export default {
  data(){
    return{
    name:'',
    password:'',
    }
  },
  methods:{
  submitForm:function(){
  var params = new URLSearchParams();
  params.append('name', this.name);
  params.append('password',this.password);
    axios({
    method: 'post',
    url: '/api/bbb.php',
    data:params
    }).then((resp)=>{
      sessionStorage.setItem('token',resp.status)// localStorage
      //以key value的形式将值存放到sessionStorage中。
      console.log(resp);
      }).catch((error)=>{
        console.log(error);
 })
   }
  }
 }
</script>

router

{
   path: '/',
   name: 'HelloWorld',
   component: HelloWorld,
   meta:{requireAuth:true}
  },

main.js

router.beforeEach((to, from, next) => {
 console.log(to);
 console.log(from);
 console.log( sessionStorage.getItem('token'))
 if (to.meta.requireAuth) { // 判断该路由是否需要登录权限
  if(sessionStorage.getItem('token')){ //判断sessionStorage是否存在token
   alert("已经登录了")
   next();
  }else{
   //防止死循环
   alert("暂时未登录")
   if (to.path === '/login') {
    next();
    return
   }else{
     next({
     path: '/login',
   });
 }
  }
 }
 else {
  next();
 }
 /*如果本地 存在 token 则 不允许直接跳转到 登录页面*/
 if(to.fullPath == "/login"){
  if(localStorage.getItem('token')){
   next({
    path:from.fullPath
   });
  }else {
   next();
  }
 }
});

注意一定要在router实例前使用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Extjs中DisplayField的日期或者数字格式化扩展
Sep 03 Javascript
Document对象内容集合(比较全)
Sep 06 Javascript
jquery 滚动条事件简单实例
Jul 12 Javascript
使用JavaScript 实现的人脸检测
Mar 24 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
Jul 21 Javascript
Angular项目从新建、打包到nginx部署全过程记录
Dec 09 Javascript
layui问题之模拟select点击事件的实例讲解
Aug 15 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
Mar 29 Javascript
JavaScript运行机制实例分析
Apr 11 Javascript
jquery实现下载图片功能
Jul 18 #jQuery
jQuery实现图片下载代码
Jul 18 #jQuery
使用react context 实现vue插槽slot功能
Jul 18 #Javascript
jquery图片预览插件实现方法详解
Jul 18 #jQuery
vue使用自定义指令实现拖拽
Jan 29 #Javascript
对TypeScript库进行单元测试的方法
Jul 18 #Javascript
基于JS实现数字动态变化显示效果附源码
Jul 18 #Javascript
You might like
PHP5+UTF8多文件上传类
2008/10/17 PHP
解析php时间戳与日期的转换
2013/06/06 PHP
调整PHP的性能
2013/10/30 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
JS常用正则表达式总结
2013/11/12 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
2017/04/11 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
Python使用Scrapy爬取妹子图
2015/05/28 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
html5表单及新增的改良元素详解
2016/06/07 HTML / CSS
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
静态成员和非静态成员的区别
2012/05/12 面试题
亿企通软件测试面试题
2012/04/10 面试题
应届护士求职信范文
2014/01/26 职场文书
应届毕业生求职信范文
2014/05/08 职场文书
大学生助学金感谢信
2015/01/21 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle