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 相关文章推荐
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
Feb 03 Javascript
浅谈Javascript鼠标和滚轮事件
Jun 27 Javascript
2014年50个程序员最适用的免费JQuery插件
Dec 15 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
Jan 28 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
Apr 20 Javascript
浅析JavaScript作用域链、执行上下文与闭包
Feb 01 Javascript
JavaScript必知必会(六) delete in instanceof
Jun 08 Javascript
各式各样的导航条效果css3结合jquery代码实现
Sep 17 Javascript
简单实现JS计算器功能
Dec 21 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
Jan 03 Javascript
JS实现的汉字与Unicode码相互转化功能分析
May 25 Javascript
vue.js与后台数据交互的实例讲解
Aug 08 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的FTP学习(二)
2006/10/09 PHP
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
javascript 开发之网页兼容各种浏览器
2017/09/28 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
Python获取脚本所在目录的正确方法
2014/04/15 Python
Python迭代器和生成器介绍
2015/03/06 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
Python简明入门教程
2015/08/04 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
药物学专业学生的自我评价
2013/10/27 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
挂科检讨书范文
2014/02/20 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
教师岗位职责
2015/02/03 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python