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 相关文章推荐
快速排序 php与javascript的不同之处
Feb 22 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
Jul 08 Javascript
简介JavaScript中toUpperCase()方法的使用
Jun 06 Javascript
JavaScript判断按钮被点击的方法
Dec 13 Javascript
node.js+express制作网页计算器
Jan 17 Javascript
js HTML5 Canvas绘制转盘抽奖
Sep 13 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
Dec 18 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
浅谈Webpack核心模块tapable解析
Sep 11 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
May 14 Javascript
vue-router 控制路由权限的实现
Sep 24 Javascript
基于javascript实现放大镜特效
Dec 03 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变量作用域的一些问题
2013/08/08 PHP
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
php调整服务器时间的方法
2015/04/03 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
php正则修正符用法实例详解
2016/12/29 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
jquery form表单提交插件asp.net后台中文解码
2010/06/12 Javascript
JS数学函数Exp使用说明
2012/08/09 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
python多线程扫描端口示例
2014/01/16 Python
python实现自动更换ip的方法
2015/05/05 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
银行职员个人的工作自我评价
2014/02/15 职场文书
银行授权委托书格式
2014/10/10 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
pandas数值排序的实现实例
2021/07/25 Python