注销功能刷新页面但它仍然登录

WannaBeDev

我正在学习 Udemy 的课程,讲师方面正在使用 Angular 2,我正在尝试使用最新版本构建应用程序。我遇到的主要问题是登出功能被访问,但因为我必须刷新页面以再次显示登录表单,出于某种原因,刷新后,我看到了登录表单,但它又回到了我已登录。

后端的注销方法:

@RequestMapping(value="/loggedOut", method=RequestMethod.POST)
public ResponseEntity logout(){
    SecurityContextHolder.clearContext();
    return new ResponseEntity("Logout Successfully!", HttpStatus.OK);
}

从我的登录服务注销功能:

logOut() {
const url = 'http://localhost:8181/loggedOut';
const basicHeader = 'Basic ' + localStorage.getItem('credentials');
const headers = new HttpHeaders({
  'x-auth-token' : JSON.stringify(localStorage.getItem('xAuthToken')),
  'Authorization' : basicHeader
});
return this.http.post(url, '', { headers, responseType: 'text'});

负责登出的按钮:

logout() {
  this.loginService.logOut().subscribe(
    res => {
      location.reload();
      console.log("Logged out")
    },
    error => {
      console.log(error)
    }
  );

从技术上讲,它是这样的:登录 -> 登录表单 -> 登录

登录: 已登录图片

登录表格: 登出

如果我删除 reload 方法,我可以看到 logout 方法被访问,我从后端得到 200。

登出

刷新前的网络选项卡:

网络选项卡响应

刷新前的服务器响应:

服务器响应

雷尼斯1235

注销localStorage尝试清除您的

localStorage.clear();

基本上,这会删除应用程序在登录时留下的任何痕迹。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章