var express = require('express');
var router = express.Router();
var UserModel = require('../models/UserModel');
var passport = require('passport');
var KakaoStrategy = require('passport-kakao').Strategy;
passport.serializeUser(function (user, done) {
done(null, user);
});
passport.deserializeUser(function (user, done) {
console.log(user);
done(null, user);
});
passport.use(new KakaoStrategy({
clientID: '아이디입력',
callbackURL: 'http://localhost:8080/passport/oauth/kakao/callback'
}, function(accessToken, refreshToken, profile, done){
UserModel.findOne({
username : profile.id
}, function(err, user){
if(err){
return done(err);
}
if(!user){
var user = new UserModel({
name: profile.username,
username: profile.id,
password : 'kakao_password',
roles : ['authenticated'],
provider: 'kakao',
});
user.save(function(err){
return done(null, user);
});
}else{
console.log(user);
return done(null, user);
}
});
}
));
router.get('/kakao', passport.authenticate('kakao'));
router.get('/oauth/kakao/callback', passport.authenticate('kakao', {
successRedirect :'http://127.0.0.1:8080/main',
failureRedirect : 'http://127.0.0.1:8080/'
}));
module.exports = router;
현재 이런 형태입니다
아이디에는 개발자 페이지에 등록된 아이디를 출력한 상태인데…
LocalStrategy 에서는 req.user로 호출하면 세션데이터가 뜨는데
도저히 여기서는 뜨지를 않고 Undefine으로 출력됩니다…
도움주셔서 감사합니다