最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 22:01:31
文档

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

nuxt中使用路由守卫的方法步骤:1.在plugins文件下创建一个route.js import { getCookie, setCookie } from '@/pages/logreg/api/cookie' import axios from 'axios' export default ({ app, store }) => { app.router.beforeE
推荐度:
导读nuxt中使用路由守卫的方法步骤:1.在plugins文件下创建一个route.js import { getCookie, setCookie } from '@/pages/logreg/api/cookie' import axios from 'axios' export default ({ app, store }) => { app.router.beforeE


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)
 }

文档

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

nuxt中使用路由守卫的方法步骤:1.在plugins文件下创建一个route.js import { getCookie, setCookie } from '@/pages/logreg/api/cookie' import axios from 'axios' export default ({ app, store }) => { app.router.beforeE
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top