前提:我们都知道在登陆的时候后台会返回一串字符串,也就是token, 也是我们常说的身份令牌, 在后续的请求中只有在请求头中携带了token才会被允许访问后台数据,因此如何存储token就显得尤为重要。
如果直接将 ToKen 存储在 Vuex容器中,
好处: 1. 获取方便
2.响应式
缺点: 只要页面一刷新就没数据了。
为了持久化,还需要把 Token 放到本地存储(localStorage–除非手动清除,永久存在)

  • 持久化
  • 所以,我们采取 Vuex 和 本地存储相结合的方式 来存储 Token
    我们可以直接将 操作Token 封装成一个模块,方便后续使用:
export const getToken = key => {const data = window.localStorage.getItem(key)console.log(data)try {return JSON.parse(data)} catch (err) {return null}
}export const getSetToken = (key, value) => {if (typeof value === 'object') {value = JSON.stringify(value)}window.localStorage.setItem(key, value)
}export const remove = key => {window.localStorage.removeItem(key)
}

然后在 store文件夹下 index.js文件中来调用 封装方法

import Vue from 'vue'
import Vuex from 'vuex'
import { getToken, getSetToken } from '@/utils/token' // 按需导入要使用的方法
Vue.use(Vuex)
const key = 'DATA_USER' //  localStorage 中是以键值对形式存储的 在这定义一个key
export default new Vuex.Store({state: {user: getToken(key) // state公共数据源 所有组件均可访问 将token 保存在 state 中 , // 因为要后续从 localStorage 中获取token 保存到 user 中 ,所以需要反序列化},mutations: {setUser(state, user) {state.user = usergetSetToken(key, user) // localStorage 中只能存储 JSON 字符串,且以键值对方式存储, 需要序列化 }},actions: {},modules: {}
})

然后在登陆页面调用 Vuex 中的 mutation中的方法 来对从后台获取的token进行保存

   this.$store.commit('setUser', res.data.data)

身份令牌toKen Vuex + localStorage结合存储相关推荐

  1. 基于java注册登录MD5算法加盐加密颁发 Token身份令牌使用各种邮箱发送验证码详解雪花算法

    目的作用 == 在项目中,为了防止别人窥视我们的密码通常我们会采取一些加密方式.这里简单介绍一下MD5 加盐加密方法,MD5叫做信息-摘要算法,严格来说不是加密方式,而是信息摘要. 对于可以接触到数据 ...

  2. vue实现接口加token+vuex刷新丢失问题

    第一步vuex 要想实现接口添加token.首先要存起来,这里我是用vuex来存储token和其他用户信息.如果不想使用也可以使用localStorage和sessionStorage来进行储存.因为 ...

  3. 基于.Net Framework 4.0 Web API开发(4):ASP.NET Web APIs 基于令牌TOKEN验证的实现

    概述:  ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但是在使用API的时候总会遇到跨域请求的问题, ...

  4. vue存储数据的几种方法(Vuex与本地存储)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 vue存储数据的几种方法(Vuex与本地存储) 前言 一.vuex 1.创建vuex 2.存入数据 3.取出数据 二.本地存储 1.存 ...

  5. html5保存资源本地,html5之Localstorage本地存储

    题外话 今天把博客里面的内容,同步在github的issues中了.具体地址是:https://github.com/confidence68/blog/issues ,欢迎大家访问,给star. L ...

  6. 在HTML5 localStorage中存储对象

    我想将JavaScript对象存储在HTML5 localStorage ,但是我的对象显然正在转换为字符串. 我可以使用localStorage存储和检索原始JavaScript类型和数组,但是对象 ...

  7. HTML5 localStorage本地存储

    介绍 localStorage(本地存储)的使用方式.包括对存储对象的添加.修改.删除.事件触发等操作. 目录 1. 介绍 1.1 说明 1.2 特点 1.3 浏览器最小版本支持 1.4 适合场景 2 ...

  8. ThinkPHP6项目基操(18.实战部分 表单令牌Token 防CSRF)

    表单令牌Token 0. 前言 1. TP6 令牌token使用 1.1 表单提交 1.2 AJAX提交 2. TP6 令牌token验证 2.1 路由验证 2.2 控制器验证 2.3 验证器验证 0 ...

  9. html 如何实现一条竖线边上有 刻度_Android H5交互Webview实现localStorage数据存储

    先看看效果图吧-- 实现比较简单,但是第一次用可能会遇到一些坑 首先得有Webview控件: 有人问我是不是需要写布局文件,不写行不行,现在我就告诉你们,不写没问题,需要写就写不写直接创建New一个也 ...

最新文章

  1. Java 读写文件大全
  2. 【NLP】基于预训练的中文NLP工具介绍:ltp 和 fastHan
  3. excel导航窗格_Excel小技巧16:在每天的某个时刻自动打开特定工作簿
  4. java面向对象程序课本,Java面向对象程序设计
  5. DP-最大递增子序列与最大递增子数组; 最大公共子序列与最大公共子数组。
  6. Java 11 将至,除了 Oracle JDK 还有这些版本!
  7. java中ant是干什么的_java_ant详解
  8. c语言不用switch做计算器,求助这个题目~不用switch语句用多重if 或者嵌套if的做法...
  9. spring学习--AOP-面向切面编程(一)
  10. oracle 空间详解,Oracle Spatial空间分析详解 | 学步园
  11. 经过几天的努力,出了 2 本保姆级编程电子书!
  12. 2021PMP最全大纲内容整理
  13. mysql数据库是什么语言_mysql是一种程序设计语言吗?
  14. 派森诺细菌完成图+转录组+蛋白组+实验端验证高分文章
  15. 奉劝各位应届毕业生,该打造你的技术影响力了,只会抄代码,该怎么办?
  16. 签offer VS 签三方
  17. java combo_JAVA中的下拉框(Combo Box)概述(1) | 学步园
  18. 知道创宇发布统一云防御,“开明兽”亮相“山海·创”
  19. mysql 按记录编号_告别硬编码,mysql 如何实现按某字段的不同取值进行统计
  20. Linux之创建组名和删除组名

热门文章

  1. spark提交应用的全流程分析
  2. Hadoop使用MultipleOutputs输出多文件或者指定命名
  3. python科学计算笔记(十)pandas中时间、日期以及时间序列处理
  4. 简单易用的baidutemplate模板的使用
  5. 图解 ElasticSearch 搜索原理
  6. 大量DelegatingClassLoader类加载器,导致Perm区溢出
  7. Java 堆内存模型
  8. Dojo 如何测试 widget 1
  9. linux下工具exfs用法
  10. 面向对象的三大特性————继承,多态