vuex配置token和用户信息
首先设计的是登录成功后端产生token,前端取出放在Local Storage,便于后面每个请求默认带上这里的token以及取用户相关信息
和main.js同级建store.js文件,代码如下
import Vue from 'vue'
import Vuex from 'vuex'
// import {getproductByIndex} from '@/data/getdata.js' Vue.use(Vuex)
const key ='token'
const account_key = 'account' const store =new Vuex.Store({
state(){
return{
token:localStorage.getItem('token') ? localStorage.getItem('token'):'',
account:localStorage.getItem('account') ? localStorage.getItem('account'):''
// 账号 }
},
getters:{
getSortage:function (state) {
if(!state.token){
state.token =JSON.parse(localStorage.getItem(key))
}
return state.token
},
getaccount: function(state){
state.account=JSON.parse(localStorage.getItem(account_key))
return state.account
}
},
mutations:{
$_setStorage(state,value){
state.token =value;
localStorage.setItem(key,value)
// localStorage.setItem(key,JSON.stringify(value))
},
$_setAccount(state,account_va){
state.account =account_va
localStorage.setItem("account",account_va) // localStorage.setItem(account,JSON.stringify(account))
}
},
})
export default store
这时候再加全局header签名我们在项目中请求就不用针对header传token了,在main.JS配置
// 全局header签名
axios.interceptors.request.use(
config => {
if (store.state.token) {
config.headers.common['token'] = store.state.token
}
return config;
},
error => {
//请求错误
return Promise.reject(error);
} )
项目中存值
<script> import store from "../store";
export default {
name: "login",
components: { },
methods:{
login(){
if (this.account == "" || this.pwd == "") {
this.$message.warning("请输入账号或密码");
} else if (this.account && this.pwd) {
let data = { account: this.account, password: this.pwd };
this.$axios
.post("/user/login/", data)
.then(res => {
if (res.data.status == 200) {
this.$message.success(res.data.message);
this.sendKey.userccount = res.data.account;
this.sendKey.usertoken = res.data.token;
// 登录成功产生token放到store
this.$store.commit("$_setStorage", res.data.token);
// 登录成功后取出用户名放到store
this.$store.commit("$_setAccount", res.data.account); this.$router.push({ path: "/home" }); } }
在项目中取出Local Storage存的值
1.template中引用
{{this.$store.state.account}}
2.方法引用
this.$store.state.accoun
vuex配置token和用户信息的更多相关文章
- JAVAEE——宜立方商城11:sso登录注册功能实现、通过token获得用户信息、Ajax跨域请求(jsonp)
1. 学习计划 第十一天: 1.sso注册功能实现 2.sso登录功能实现 3.通过token获得用户信息 4.Ajax跨域请求(jsonp) 2. Sso系统工程搭建 需要创建一个sso服务工程,可 ...
- Spring Cloud云架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)
上一篇我根据框架中OAuth2.0的使用总结,画了SSO单点登录之OAuth2.0 登出流程,今天我们看一下根据用户token获取yoghurt信息的流程: /** * 根据token获取用户信息 * ...
- 整合spring cloud云架构 - 根据token获取用户信息
根据用户token获取yoghurt信息的流程: /** * 根据token获取用户信息 * @param accessToken * @return * @throws Exception */ @ ...
- uni-app开发经验分享三: Vuex实现登录和用户信息留存
在做用户登录的过程中,其实最重要的是登录成功后的数据要怎么储存,储存到哪里,这里我分享一个利用vuex来实现用户登录和用户数据留存的方法 vuex代码如下: //引入vue和vuex import V ...
- .NET微信开发通过Access Token和OpenID获取用户信息
本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称.头像.性别.国家.省份.城市.语言. 本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息 ...
- 服务器配置用户信息、ssh免密码登录和防火墙等安全配置
一.登录服务器 1.回到根目录 cd ~ 2.ssh + 用户名@服务器公网地址 ssh root@47.94.208.76 3.输入密码:注意输入法大小写 二.查看服务 ...
- 微信网页授权,获取微信code,获取access_tocken,获取用户信息
微信开发中,经常有这样的需求:获得用户头像.绑定微信号给用户发信息.. 那么实现这些的前提就是授权! 1.配置安全回调域名: 在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 ...
- 用户登录拦截器查询到登录用户后如何将用户信息传递到后面的Controller
taotao创建订单代码中之前忘了加入用户信息,那么加上呢? 分析:用户创建订单的时候,我们会强制要求用户先登录,也就是说,创建订单的Controller执行时,一定是用户已经登录了的,而用户只要登录 ...
- 搭建nuxtjs程序 —— 用户信息 or token怎么不丢失
框架背景:开发框架采用vue,需要更好的SEO,更快的内容到达时间,从浏览器看不到对服务器的请求接口,选用开箱即用的nuxtjs. 问题背景:1. 前后分离,需前端存储token及登录后的用户信息: ...
随机推荐
- 『Python』进程同步
1. Lock(互斥锁) 是可用的最低级的同步指令.Lock处于锁定状态时,不被其他的线程拥有. from multiprocessing import Process, Value, Lock de ...
- P3273-[SCOI2011]棘手的操作【线段树,并查集】
正题 题目链接:https://www.luogu.com.cn/problem/P3273 题目大意 \(n\)个点有权值,要求支持操作 连接两个点 单点加权 联通块加权 全图加权 单点询问 联通块 ...
- Unity3D组成
从宏观的角度来看,分为七个模块: 1.图形模块(Graphics). 2.物理模块(Physics) 3. 音效模块(Audio) 4.动作模块(Animation) 5.导航模块(Navigatio ...
- 单机百万连接调优和Netty应用级别调优
作者:Grey 原文地址:单机百万连接调优和Netty应用级别调优 说明 本文为深度解析Netty源码的学习笔记. 单机百万连接调优 准备两台Linux服务器,一个充当服务端,一个充当客户端. 服务端 ...
- React实现组件全屏化
介绍 本文基于React+antd,给大家演示一个完整的全屏demo. 起因是开发今天给我提了一个sql编辑器输入框比较小,不支持放大,不太方便.希望能够全屏显示,联想到自己以后可能也会需要,便研究并 ...
- Java(29)集合四Collections
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228439.html 博客主页:https://www.cnblogs.com/testero ...
- 项目优化之v-if
前言: 在vue项目中,由于功能比较多,需要各种条件控制某个功能.某个标签.表格中的某一行是否显示等,需要使用大量的v-if来判断条件. 例如: <div v-if="isShow(a ...
- 【数据结构与算法Python版学习笔记】树——二叉查找树 Binary Search Tree
二叉搜索树,它是映射的另一种实现 映射抽象数据类型前面两种实现,它们分别是列表二分搜索和散列表. 操作 Map()新建一个空的映射. put(key, val)往映射中加入一个新的键-值对.如果键已经 ...
- 热身训练1 ping ping ping
点此进入 题意: 一棵树,n+1 个节点,以0号节点为根,给出端点(a,b),节点a到节点b的路径上,至少有一个点是"坏掉的",求"坏掉的点"最少 分析: St ...
- 通过串口利用printf函数输出数据
一.printf函数格式 printf函数具有强大的输出功能 %表示格式化字符串输出 目前printf支持以下格式的输出,例如: printf("%c",a);输出单个字符. pr ...