Когда переходишь на роут logout, чтобы разлогинится, то получаю ошибку Error: Failed to serialize user into session. Уже не пойму как его исправлять
app.js
const Koa = require('koa'),
router = require('./router/auth'),
bodyParser = require('koa-bodyparser'),
session = require('koa-session'),
passport = require('./bin/passport'),
app = new Koa();
app.keys = ['Secret CRM Key'];
app.use(session({}, app));
app.use(bodyParser());
app.use(passport.initialize());
app.use(passport.session());
app.use(router.routes());
module.exports = app;
В bin/passport.js
const passport = require('koa-passport'),
LocalStrategy = require('passport-local').Strategy,
User = require('../models/user');
passport.use(new LocalStrategy(
(username, password, done) => {
User.findOne({username}, (err, user) => {
if (err) {
return done(err);
}
if (!user || !user.checkPassword(password)) {
return done(null, false, {message: 'Нет такого пользователя или пароль неверен.'});
}
return done(null, user);
});
})
);
passport.serializeUser((user, done) => {
done(null, user);
});
passport.deserializeUser((id, done) => {
User.findById(id, (err, user) => {
done(err, user.username);
})
});
module.exports = passport;
И в роуте router/auth.js
/** Аторизация */
router.post('/', passport.authenticate('local', {
successRedirect: '/user',
failureRedirect: '/',
}))
/** Выход из системы*/
router.get('/logout', async ctx => {
ctx.isAuthenticated();
await ctx.login();
ctx.redirect('/');
});