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 相关文章推荐
如何做到打开一个页面,过几分钟自动转到另一页面
Apr 20 Javascript
javascript EXCEL 操作类代码
Jul 30 Javascript
javascript之学会吝啬 精简代码
Apr 25 Javascript
jquer之ajaxQueue简单实现代码
Sep 15 Javascript
jquery的总体架构分析及实现示例详解
Nov 08 Javascript
JS基于Ajax实现的网页Loading效果代码
Oct 27 Javascript
Jquery中request和request.form和request.querystring的区别
Nov 26 Javascript
Three.js基础部分学习
Jan 08 Javascript
javascript使用btoa和atob来进行Base64转码和解码
Mar 20 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
May 19 jQuery
angularJS开发注意事项
May 26 Javascript
小程序Scroll-view上拉滚动刷新数据
Jun 21 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
mysql 性能的检查和优化方法
2009/06/21 PHP
php google或baidu分页代码
2009/11/26 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
JS 实现可停顿的垂直滚动实例代码
2016/11/23 Javascript
js中作用域的实例解析
2017/03/16 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
最小二乘法及其python实现详解
2020/02/24 Python
Python 如何批量更新已安装的库
2020/05/26 Python
Django数据统计功能count()的使用
2020/11/30 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
瑞典耳机品牌:URBANISTA
2019/12/03 全球购物
《藤野先生》教学反思
2014/02/19 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
个人自荐书怎么写
2015/03/26 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
Mysql如何查看是否使用到索引
2022/12/24 MySQL