nuxt中使用路由守卫的方法步骤


Posted in Javascript onJanuary 27, 2019

1.在plugins文件下创建一个route.js

import { getCookie, setCookie } from '@/pages/logreg/api/cookie'
import axios from 'axios'

export default ({ app, store }) => {
 app.router.beforeEach((to, from, next) => {
  let isClient = process.client
  if (isClient) {
   let currentUrl = location.href
   if (currentUrl.indexOf('access_token=') !== -1) {
    let wechattoken = currentUrl.split('access_token=')[1]
    wechattoken = wechattoken.split('&')[0]
    setCookie('token', wechattoken, 5)
   }
   let token = getCookie('token')
   if (token) {
    store.state.user.userinfo.token = token
    axios
     .get('https://api.ass.net/pub/api/user_info', {
      params: {
       token
      }
     })
     .then(res => {
      res = res.data
      if (res.code == 0) {
       res = res.data
       res.headImg = res.headImg.replace('http:', 'https:')
       store.state.user.userinfo = Object.assign(
        {},
        store.state.user.userinfo,
        res
       )
      }
     })
     .catch(error => console.log(error))
   }
  }
  next()
 })
}

2.在nuxt.config.js里面配置

plugins: [
  { src: '@/plugins/route', ssr: true }
 ],

PS:Nuxt在axios请求拦截中使用路由

最近在开发一个网站,用的nuxt搭建的框架,因为需要在请求token过期之后提示用户重新登录并且返回登录页面,但是在axios的配置文件中使用router.push一直报错,都准备放弃使用公众组件去进行路由跳转了,但是天无绝人之路,最终在官方文档中找到了redirect,具体操作如下:

在axios的js文件中添加默认的方法,并且获取redirect,并且使用使用myredirect将redirect储存起来

let myredirect;
export default function ({redirect }) {
 myredirect = redirect;
}

在需要使用路由跳转的地方进行跳转(此处在判断token过期时跳转)

if (error.message.toString().slice(-3) === '401') {
  Vue.prototype.$message.error('登陆超时,请重新登陆...')
  setTimeout(function () {
   return myredirect('/login/login')
  }, 2000)
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 使用技巧精萃(.net html
Apr 25 Javascript
jQuery 操作下拉列表框实现代码
Feb 22 Javascript
基于jquery的气泡提示效果
May 31 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
Apr 15 Javascript
FireBug 调试JS入门教程 如何调试JS
Dec 23 Javascript
jQuery弹出层插件Lightbox_me使用指南
Apr 21 Javascript
jquery 遍历数组 each 方法详解
May 25 Javascript
JS实现列表的响应式排版(推荐)
Sep 01 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
Oct 26 Javascript
webpack 打包压缩js和css的方法示例
Mar 20 Javascript
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
vue-cli构建vue项目的步骤详解
Jan 27 #Javascript
vue实现的仿淘宝购物车功能详解
Jan 27 #Javascript
详解vue路由篇(动态路由、路由嵌套)
Jan 27 #Javascript
实例讲解JS中pop使用方法
Jan 27 #Javascript
Vue.js实现的购物车功能详解
Jan 27 #Javascript
JS温故而知新之变量提升和时间死区
Jan 27 #Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
Jan 25 #Javascript
You might like
对盗链说再见...
2006/10/09 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
DHTML Slide Show script图片轮换
2008/03/03 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
利用python实现命令行有道词典的方法示例
2017/01/31 Python
简单谈谈Python中的json与pickle
2017/07/19 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
Python中pillow知识点学习
2018/04/30 Python
Python处理中文标点符号大集合
2018/05/14 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
python安装本地whl的实例步骤
2019/10/12 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
仓库理货员岗位职责
2013/12/18 职场文书
职业生涯规划书基本格式
2014/01/06 职场文书
幼儿教师2014年度工作总结
2014/12/16 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
python实现手机推送 代码也就10行左右
2022/04/12 Python