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 innerHTML、outerHTML、innerText、outerText的区别
Nov 24 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
Jul 13 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
Feb 05 Javascript
浅谈Javascript如何实现匀速运动
Dec 19 Javascript
js实现简单随机抽奖的方法
Jan 27 Javascript
js基于myFocus实现轮播图效果
Feb 14 Javascript
详解webpack-dev-server使用方法
Sep 14 Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 Javascript
VUE项目axios请求头更改Content-Type操作
Jul 24 Javascript
vue3.0中setup使用(两种用法)
Dec 02 Vue.js
如何理解Vue简单状态管理之store模式
May 15 Vue.js
vue实现拖拽交换位置
Apr 07 Vue.js
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仿discuz分页效果代码
2008/10/02 PHP
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
学习YUI.Ext第五日--做拖放Darg&amp;Drop
2007/03/10 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
python实现计算资源图标crc值的方法
2014/10/05 Python
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
python散点图实例之随机漫步
2018/08/27 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
python 实现绘制整齐的表格
2019/11/18 Python
windows下python安装pip方法详解
2020/02/10 Python
python实现logistic分类算法代码
2020/02/28 Python
Python logging模块handlers用法详解
2020/08/14 Python
学习Python需要哪些工具
2020/09/04 Python
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
介绍一下SQL中union,intersect和minus
2012/04/05 面试题
结婚典礼证婚词
2014/01/11 职场文书
2014学雷锋活动心得体会
2014/03/10 职场文书
保护环境建议书300字
2014/05/13 职场文书
邀请书模板
2015/02/02 职场文书
党员个人总结范文
2015/02/14 职场文书
停发工资证明范本
2015/06/12 职场文书
黑白记忆观后感
2015/06/18 职场文书
2016党校培训心得体会
2016/01/07 职场文书
python 定义函数 返回值只取其中一个的实现
2021/05/21 Python