主要是处理用户退出logout的逻辑
后端controller层
设定了一个@RequiresAuthentication的注解
@RequiresAuthentication
@GetMapping("/logout")
public Result logout(){
System.out.println("logout");
SecurityUtils.getSubject().logout();
return Result.success("已退出", null);
}
前端代码
vue部分
<div class="text-align-right">
<span>当前用户:{{ username }}</span>   
<span><el-link type="danger" @click="logout"> 退出</el-link></span>
</div>
vue的<script>部分
methods: {
logout() {
const _this = this
this.$axios.get("/logout", {
headers: {
"Authorization": localStorage.getItem("token")
}
}).then((res) => {
_this.$store.commit('REMOVE_INFO')
_this.$router.push('/')
});
}
}
问题出现在下面这一行
"Authorization": localStorage.getItem("token")
不知道为什么"Authorization"不能正确拿到值
已经尝试过:
1. 将Authorization改成authorization,不行;
2. 去掉引号,直接
Authorization: localStorage.getItem("token")
同样出错
3. 改成任意变量名,如aaa
"aaa": localStorage.getItem("token")
浏览器console不报错,但是后台的controller层的logout()是不会触发的,因为Authorization没有获取到
现在的问题是是什么原因导致Authorization不能获取到呢?
PS:我的另一个项目是正常的,代码一模一样,但是现在这个不行
localStorage.getItem("token") 这行代码的意思是从 localStorage中取名为token的值,你看看你的本地存储里有这个token的值吗
打印出来的是[object,object]?
headers: {
"Authorization": localStorage.getItem("token")
}
"Authorization" 这个东西是token的名称,是后台规定的,你看看和后台定义的一样么