import passport from 'koa-passport'; import { Types } from 'mongoose'; import { AuthDocument } from '@mifi/services-common/lib/db/schema/auth'; import { readOneByRecord } from '@mifi/services-common/lib/db/dao/readOneByRecord'; import { readOneById } from '@mifi/services-common/lib/db/dao/readOneById'; import LocalStrategy from './strategies/local'; import JwtStrategy from './strategies/jwt'; passport.use(LocalStrategy); passport.use(JwtStrategy); passport.serializeUser((user, done) => { done(null, (user as AuthDocument).record || (user as AuthDocument).id); }); passport.deserializeUser(async (id, done) => { const user = await readOneByRecord(id).catch(async () => await readOneById(id)); done(user ? null : 'user not found', user); }); export default passport;