清除 cookie 不会破坏护照 session

Clear cookie does't destroy passport session

我使用 koa-passport 和 passport-local

初始化策略

  passport.use(new LocalStrategy(
    (username, password, cb) => {
          db.findByUsername(username, (err, user) => {
            return cb(null, user);
          });
  }));

登录

authorization.post('/login', function(ctx, next) {
  return passport.authenticate('local', function(user,error) {
    if (!user) {
      ctx.status = 401;
      ctx.body = { success: false, ...error }
    } else {
      ctx.body = { success: true }
      ctx.status = 200;
      return ctx.login(user)
    }
  })(ctx, next)
})

删除 cookie 后,浏览器仍然可以访问私有 url,如果我再次使用同一用户登录,则响应不包含 "Set-Cookie" header 和 session ID。我该如何解决?

发生这种情况是因为我使用 koa-proxy。 授权逻辑位于另一台服务器上,我使用 koa-proxy 进行代理请求。现在我删除 koa-proxy 并使用 http-proxy 和 http-proxy-rules 一切正常。