passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(obj, done) {
done(null, obj);
});
passport.use(new GoogleStrategy({
clientID: GOOGLE_CLIENT_ID,
clientSecret: GOOGLE_CLIENT_SECRET,
callbackURL: GOOGLE_CALL_BACK,
passReqToCallback : true
},
function(request, accessToken, refreshToken, profile, done) {
process.nextTick(function () {
return done(null, profile);
});
}
));
app.get('/auth/google/login', passport.authenticate('google', { session: false, scope: [
'email', 'profile'],
}));
app.get('/auth/google/login-process',
passport.authenticate( 'google', {
failureRedirect: '/auth/google/login',
}), function (req, res) {
return res.redirect("/");
}
);
app.get('/auth/google/logout', function(req, res){
req.logout();
res.redirect("/");
});
처음으로 Node.JS를 만지작 거리며 회사에서 google oauth를 붙이게 됨.
npm passport google oauth를 이용하여 붙이는 중 logout을 하면 자동으로 다시 login이 되는 현상이 발생.
쿠키나 세션문제로 인지하고 주구장창 그쪽만 파봄.. 수시간이 흐르고 짜증이 날때 즈음 우리 스택오버플로우 형님께서 알려주신
'prompt: 'select_account' 옵션을 붙임.
app.get('/auth/google/login', passport.authenticate('google', { session: false, scope: [
'email', 'profile'], prompt: 'select_account'
}));
잘됨. 아주 잘됨...
진짜 처리하는 방법은 알게뭐냐!!! 된다!!! 끗