状态持久化与token校验

状态持久化与token校验
安装:cookie-universal-nuxt
思想:登录时:同步vuex与cookie,强制刷新后,unxtServerInit钩子函数取出cookie同步vuex,axios拦截器读取vuex (vuex是存在内存上,读取速度会比存在磁盘上快)

nuxt.config.js

modules: [
    '@nuxtjs/axios',
    'cookie-universal-nuxt' // 加入cookie模块  vue实例是就有$cookies
  ]

登录页

 <button @click="login">登录</button>
login() {
      this.$axios({
        url: '/data/user.json'
      })
      .then((res) => {
        if(res.status === 200) {
          console.log(this.$cookies)
          let token = res.data.token
          this.$cookies.set('token', token) // 存在cookies下
          this.setToken(token)
        }
        console.log(res)
      })
    }

store ==> index.js

export const actions = {
  // 这里 app vue 实例
  nuxtServerInit(store, { app: { $cookies } }) {
    //刷新时 获取cookies 里的token 设置到vuex
    let user = $cookies.get('token') || { err: 2, msg: '未登录', token: '' };
    console.log('nuxt初始化',user)
    store.dispatch('user/setToken', user)
    // console.log('nuxt初始化', $cookies)
  },
  setNbool({commit}, bool) {
    commit('SET_NBOOL', bool)
  }
}

axios

export default function ({ $axios, redircet, route, store }){
  // 基本配置信息
  $axios.defaults.timeout = 10000;
  // 请求拦截
  $axios.onRequest(config => {
    console.log('请求拦截')
    // 从vuex获取token
    config.headers.token = store.state.user.token
    return config
  })

  // 响应拦截
  $axios.onResponse(res => {
    console.log('响应拦截')
    return res
  })
  // 错误处理
  $axios.onError(error => {

    return error;
  })
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Nuxt爬坑 第一节:nuxt.js相关概述 nuxt.js简单的说是Vue.js的通用框架,最常用的就是用来作S...
    阿_军阅读 1,197评论 0赞 0
  • Nuxt.js 是一个基于 Vue.js 的通用应用框架。 通过对客户端/服务端基础架构的抽象组织,##Nuxt....
    Betterthanyougo阅读 1,961评论 0赞 1
  • -------------------- 更新 -------------------- 发现这种方案搭配 C...
    梧桐月明中阅读 5,362评论 0赞 0
  • 0 HTML5相关 websocket WebSocket 使用ws或wss协议,Websocket是一个持久化的...
    可爱多小姐阅读 1,064评论 0赞 0
  • vue的核心是什么? Vue 的核心设计理念可以概括为以下 5 个关键要素,这些要素共同构成了 Vue 的独特优势...
    Aniugel阅读 10,296评论 3赞 21

友情链接更多精彩内容