authentication - 如何从 Vue 中的 Django JWT 令牌获取用户?
问题描述
我正在尝试从我的 JWT 令牌中检索用户,该令牌是从 Django-Rest API 端点提供的,/get-token/
并将用户存储在我的 Vuex 商店中。
我没有设置端点来返回已登录的user
,虽然这可能是一个潜在的解决方案,但我认为没有理由这样做,而不是从 JWT 令牌中检索用户。
我尝试通过this.$store.commit('setAuthUser', response.data.user)
和直接从 JSON 令牌中检索用户response.data.user.username
登录.Vue
axios.post(this.$store.state.endpoints.obtainJWT, payload)
.then((response) => {
this.$store.commit('updateToken', response.data.token)
this.$store.commit('setAuthUser', response.data.user) -------This line is not working
console.log(response.data)
})
store.js
export default new Vuex.Store({
state: {
authUser: {},
isAuthenticated: false,
jwt: localStorage.getItem('token'),
endpoints: {
obtainJWT: 'http://127.0.0.1:8000/get-token/',
refreshJWT: 'http://127.0.0.1:8000/refresh-token/',
baseUrl: 'http://127.0.0.1:8000/main/api/',
}
},
mutations: {
setAuthUser(state, {
authUser,
isAuthenticated
}) {
Vue.set(state, 'authUser', authUser)
Vue.set(state, 'isAuthenticated', isAuthenticated)
},
updateToken(state, newToken) {
localStorage.setItem('token', newToken);
state.jwt = newToken;
},
removeToken(state) {
localStorage.removeItem('token');
state.jwt = null;
}
}
});
预期:正确检索用户并使用 setAuthUser mutator 存储在 Vuex 中
实际:错误Cannot destructure property 'authUser' of 'undefined' or 'null'.
解决方案
推荐阅读
- types - RxJS ids 从类型字符串到类型数字
- php - 在 PHP 中将 XML 对象转换为数组不起作用
- sql - Postgresql,查询以计算特定性别的机器使用次数
- python - ProcessPoolExecutor pass multiple arguments
- c++ - 为什么这些范围之外的字符也会被输出文件中的加法/减法改变?
- python - 需要从与用户表相关的日期表中获取值
- visual-studio - VS2019安装SQL Server组件查看网页时出现err_connection_reset
- docker - GKE - 在运行时绕过 Pod LoadBalancer(Pod 的外部 IP)到 Pod 的容器的 IP 以用于 WebSocket 目的
- epub - 在 epubcheck 中验证 epub 时出错,它说这个
- python - 如何检查 URL 是否包含某些内容