koa-passport logout() 不是清除会话

Jar*_*eth 5 node.js koa koa-passport passport.js koa-session

我正在使用 koa、koa-passport 和 koa-session 来登录工作正常的用户,但是当我调用 ctx.logout() 时,用户可以刷新并仍然登录。似乎 ctx.session 和/或 cookie 是没有被正确清除。

使用 Postman 发出请求时,这仍然失败。

import Koa = require('koa');
import session = require('koa-session');
import passport = require('koa-passport');

....

app.keys = ['******'];
app.use(session({}, app));

....

app.use(passport.initialize());
app.use(passport.session());

....

router.get('/logout', (ctx: Context) => {
    if (ctx.isAuthenticated()) {
			ctx.logout();
			ctx.session = null; // Added this but still nothing
		}

		ctx.response.body = true;
});
Run Code Online (Sandbox Code Playgroud)

我在 Express 中找到了很多示例,包括以下内容,但对 Koa 没有任何运气:https : //github.com/expressjs/cookie-session/issues/104

小智 2

我从https://github.com/expressjs/cookie-session/issues/104获取了这个答案 ,以便您可以找到该对话框的完整历史记录,但我只是为了节省某人的时间并将答案写在下面:

await ctx.logout();
ctx.session = null;
Run Code Online (Sandbox Code Playgroud)

我猜他只是不知道ctx.logout异步函数