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 相关文章推荐
Javascript拓展String方法小结
Jul 08 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
Oct 17 Javascript
使用原生js写的一个简单slider
Apr 29 Javascript
js实现从数组里随机获取元素
Jan 12 Javascript
jQuery实现邮箱下拉列表自动补全功能
Sep 08 Javascript
vue.js实现备忘录功能的方法
Jul 10 Javascript
AngularJS 实现购物车全选反选功能
Oct 24 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
Nov 14 Javascript
Vue初始化中的选项合并之initInternalComponent详解
Jun 11 Javascript
js实现星星打分效果
Jul 05 Javascript
Vue前端判断数据对象是否为空的实例
Sep 02 Javascript
Swiper实现导航栏滚动效果
Oct 16 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
php面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP读取word文档的方法分析【基于COM组件】
2017/08/01 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
基于iview的router常用控制方式
2019/05/30 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
JS实现简易计算器
2020/02/14 Javascript
Vue+tracking.js 实现前端人脸检测功能
2020/04/16 Javascript
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
Python中的单继承与多继承实例分析
2018/05/10 Python
Numpy之文件存取的示例代码
2018/08/03 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
前处理组长岗位职责
2014/03/01 职场文书
法人授权委托书样本
2014/09/19 职场文书
小学生作文评语集锦
2014/12/25 职场文书
勤俭节约主题班会
2015/08/13 职场文书
SQL语句多表联合查询的方法示例
2022/04/18 MySQL