import passport from 'passport';
import User from '../models/user';
import local from './local';
export default () => {
// serializerUser 메서드를 사용하여 사용자 정보를 Session에 저장할 수 있습니다.
// session에 저장할 정보 done(null,user) 과 같이 두번쨰 인자로 넘기면 됩니다.
// passport.serializeUser((user: User, done: any) => done(null, user.id));
passport.serializeUser((user: any, done) => {
done(null, user.id)
});
// 로그인 되어 있을 경우 모든 사용자 페이지를 접근할 경우.
// deserializeUser 가 발생합니다. -> session에 저장된 값을 이용해.
// 사용자 Profile 찾은 후, HTTP Request 리턴합니다.
passport.deserializeUser<number>(async (id: number, done) => {
try {
const user = await User.findOne({
where: { id },
});
return done(null, user); // req.user
} catch (err) {
console.error(err);
return done(err);
}
});
local();
}
아녀.. 완성본 back types 파일 보니까 req.user 타이핑 안하시고, 타이핑 없이 req.user!.id 사용하셔서 제가 뭐 잘못 코드 짯나 생각했습니다. 혹시 req.user 타이핑 어떻게 해야 하는 지 알려주실 수 있으세요??