在 koa-session 中销毁会话
Destroying a session in koa-session
所以我有一个简单的授权系统,登录用户被保存到会话中。问题是在这种情况下,我想删除一个会话,从而将用户注销,会话进行下一个请求。
app.get('/logout', ctx => {
ctx.session = null;
ctx.redirect('/');
});
所以在这种情况下,下面的代码将在注销重定向后在页面上呈现用户信息:
app.get('/', ctx => ctx.body = ctx.session);
Cookie 也没有被清除。
我是 koa-session 的新手,但不久前能够通过将用户的 id 对象设置为 ctx.session.id
.
在一个项目中实现用户身份验证
登录
router.post('/login', async ctx => {
const userDetails = ctx.request.body
try {
const userDetails = ctx.request.body
const userId = await user.login(userDetails)
ctx.session.authenticated = true
ctx.session.id = userId
ctx.redirect('/')
} catch (error) {
await ctx.render('login', {error: error})
} finally {
await user.tearDown()
}
})
注销
router.get('/logout', async ctx => {
if (ctx.session.authenticated === true) {
ctx.session.authenticated = false
ctx.session.id = undefined
}
ctx.redirect('/')
})
在您的情况下,您可能想要分配 ctx.session.user = userObject
,然后在注销用户时,重新分配给 ctx.session.user = null
。
所以我有一个简单的授权系统,登录用户被保存到会话中。问题是在这种情况下,我想删除一个会话,从而将用户注销,会话进行下一个请求。
app.get('/logout', ctx => {
ctx.session = null;
ctx.redirect('/');
});
所以在这种情况下,下面的代码将在注销重定向后在页面上呈现用户信息:
app.get('/', ctx => ctx.body = ctx.session);
Cookie 也没有被清除。
我是 koa-session 的新手,但不久前能够通过将用户的 id 对象设置为 ctx.session.id
.
登录
router.post('/login', async ctx => {
const userDetails = ctx.request.body
try {
const userDetails = ctx.request.body
const userId = await user.login(userDetails)
ctx.session.authenticated = true
ctx.session.id = userId
ctx.redirect('/')
} catch (error) {
await ctx.render('login', {error: error})
} finally {
await user.tearDown()
}
})
注销
router.get('/logout', async ctx => {
if (ctx.session.authenticated === true) {
ctx.session.authenticated = false
ctx.session.id = undefined
}
ctx.redirect('/')
})
在您的情况下,您可能想要分配 ctx.session.user = userObject
,然后在注销用户时,重新分配给 ctx.session.user = null
。