首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请求在从客户端和服务器端删除Cookie之后仍然附加Cookie

请求在从客户端和服务器端删除Cookie之后仍然附加Cookie
EN

Stack Overflow用户
提问于 2020-02-05 01:35:55
回答 1查看 65关注 0票数 0

我正在尝试实现一个快速的登录-注销解决方案。

登录:

使用AJAX (Client-Side)

  • NodeJS发送POST请求,
  • 使用javascript (客户端)

创建cookie

  • 页面。

工作很好

注销:

使用AJAX (Client-Side)

  • NodeJS发送POST请求,删除cookie (Server-Side)

  • I,确保在客户端删除cookie,以及使用JS (Client-Side)

  • Reloades,使用JS (Client-Side)

  • NodeJS的页面仍然以某种方式从req??

接收cookie。

所以,当我重新加载页面后,登录操作,我仍然是登录。只有在我强制刷新或多按一次“注销”之后,我才会看到我确实是注销了。

我尝试过许多不同的方法和方法来加载页面和删除cookie,但是似乎没有什么效果。

Javascript:

代码语言:javascript
复制
$("#logout").click(function () {    
    var username = this.value;
    logout(username)
    var currentUrl = window.location.href; 
    window.location.assign(currentUrl); //I tried different methods of reloading the page
  });

// perform logout action
function logout(username) {
  $.ajax({
    type: "POST",
    url: "/logout",
    data: JSON.stringify({ username: username }),
    success: function () {
      //just in case remove the cookie
      removeLoginCookie()
    },
    error: function () {
      removeLoginCookie()
    },
    dataType: "json",
    contentType: "application/json"
  });
}

NodeJS:

代码语言:javascript
复制
app.post('/logout', (req, res) => {

  try{
    res.clearCookie('userlogin', { path: '/' })
    res.send({ "status": "Logged out successfully!" })

  }catch(e){
    res.sendStatus(500);
  }
});
EN

回答 1

Stack Overflow用户

发布于 2020-02-05 02:00:48

我能够解决这个问题,在重新加载页面之前设置一个超时,但我不喜欢这个解决方案,我仍然好奇为什么会发生这种情况,以及有什么更好的方法来做到这一点。

代码语言:javascript
复制
$("#login").click(function () {    
  var username = this.value;
  logout(username)
  setTimeout(()=>{
    var currentUrl = window.location.href; 
    window.location.assign(currentUrl);
  }, 500)
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60067872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档