Page 416 - Nodejs 교과서 개정2판
P. 416
ف ߣ૩ ۽Ӓੋࠗఠח ۽Ӓੋ ܻܳ ೧ঠ פ ٮۄࢲ 4/4 ۽Ӓੋ ۚ ۽ஸ ۽Ӓੋ ۚࠁ ࣗ ࠂ
פ
passport/kakaoStrategy.js
const passport = require('passport');
const KakaoStrategy = require('passport-kakao').Strategy;
const User = require('../models/user');
module.exports = () => {
➊
passport.use(new KakaoStrategy({
clientID: process.env.KAKAO_ID,
callbackURL: '/auth/kakao/callback',
➋
}, async (accessToken, refreshToken, profile, done) => {
console.log('kakao profile', profile);
try {
const exUser = await User.findOne({
where: { snsId: profile.id, provider: 'kakao' },
});
if (exUser) {
done(null, exUser);
➌
} else {
const newUser = await User.create({
email: profile._json && profile._json.kakao_account_email,
nick: profile.displayName,
snsId: profile.id,
provider: 'kakao',
});
done(null, newUser);
}
} catch (error) {
console.error(error);
done(error);
}
}));
};
QBTTQPSU LBLBP ݽٕ۽ࠗఠ Strategy ࢤࢿܳ ࠛ۞৬ ۚਸ ҳഅפ
➊ ۽ஸ ۽Ӓੋҗ ݃ଲо۽ য় ۽Ӓੋী ೠ ࢸਸ פ clientIDח য়ীࢲ ߊә೧ח ই٣