Spring Boot + Vue 前后端分离项目,如何踢掉已登录用户?
在Spring Boot + Vue前后端分离项目中踢掉已登录用户,可以通过清除用户的Session来实现。以下是后端的实现方式:
- 创建一个Controller来处理踢掉用户的请求。
- 在对应的接口方法中,获取HttpServletRequest对象,从中获取当前用户的Session。
- 将Session标记为无效,从而让用户下次请求时需要重新登录。
后端示例代码:
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
@RestController
public class LogoutController {
@PostMapping("/logout")
public String logout(HttpServletRequest request) {
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate(); // 使当前session失效
}
return "success";
}
}
前端Vue部分,你需要创建一个方法来发送请求到后端,以踢掉当前用户。
前端Vue示例代码:
<template>
<button @click="logout">Logout</button>
</template>
<script>
export default {
methods: {
logout() {
axios.post('/logout')
.then(response => {
console.log(response.data); // 输出: success
// 处理登出后的逻辑,例如跳转到登录页面等
})
.catch(error => {
console.error(error);
});
}
}
}
</script>
确保你已经配置了axios或其他HTTP客户端库来发送POST请求,并且服务器端的路由/logout
已经映射到了上面定义的Controller方法。
评论已关闭