关于vuex使用“token”字段存储token变undefined的坑

最近做前后端分离的项目,前端登录时使用vuex存储后端发过来的token信息,当时的设置是在state中使用“token”字段存。但是后边发现,每次登录后只有第一次能获取到state中的token,后边再次获取时都变成的undefined!
后边将“token”字段重新命名为“user_token”就没事了…我也不清楚这是什么原因,好像是不给使用“token”字段,使用了之后,获取时会变成undefined…

下面是相关测试:
在这里插入图片描述
在这里插入图片描述
在登录后,第一次获取前是正常显示的:
在这里插入图片描述
第二次获取时就变成undefined了
在这里插入图片描述
本人太菜了,具体为什么也搞不清楚,只能记录一下这个坑
在这里插入图片描述

在Vue和Vuex中实现Token存储,可以将Token保存在Vuex的状态管理器中,这样在整个应用程序中都可以访问到Token。下面是一个简单的示例: 1. 首先,在Vuex中创建一个module,用于存储Token: ```javascript // store/modules/auth.js const state = { token: null } const mutations = { setToken(state, token) { state.token = token } } export default { state, mutations } ``` 2. 在Vue组件中使用Vuex的mapState和mapMutations方法,将Token存储Vuex中: ```javascript // Login.vue <template> <div> <input type="text" v-model="username"> <input type="password" v-model="password"> <button @click="login">Login</button> </div> </template> <script> import { mapState, mapMutations } from 'vuex' export default { data() { return { username: '', password: '' } }, computed: { ...mapState({ token: state => state.auth.token }) }, methods: { ...mapMutations({ setToken: 'auth/setToken' }), login() { // 发送登录请求,获取Token const token = 'xxxxx' this.setToken(token) } } } </script> ``` 3. 在需要验证Token的请求中,从Vuex中获取Token: ```javascript // api.js import axios from 'axios' import store from '@/store' const api = axios.create({ baseURL: 'https://api.example.com', headers: { 'Content-Type': 'application/json' } }) api.interceptors.request.use(config => { const token = store.state.auth.token if (token) { config.headers.Authorization = `Bearer ${token}` } return config }, error => { return Promise.reject(error) }) export default api ``` 以上是一个简单的实现方法,当然,实际应用中还需要考虑Token的过期时间和刷新等问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值