데모때 중요한 것은 로그인부터 차근차근~ 보다는 팀 프로젝트의 핵심 기능을 소개하는 것이라 판단되어 백팀 진행 순서를 최대한 빨리 핵심 기능 먼저 보이게 하는 쪽으로 수정했다.
google.js 전체 코드 이해하기!
passport.serializeUser
[(Node.js) Serialize 와 Deserialize 로그인 정보 저장](https://heewon26.tistory.com/51)
라스트 오늘 할 일
Algorithm
내일은 꼭 풀자 !!!!
passport.use(
new GoogleStrategy(
{
clientID: GOOGLE_CLIENT_ID,
clientSecret: GOOGLE_CLIENT_SECRET,
callbackURL: "http://localhost:3000/auth/google/callback",
passReqToCallback: true,
},
function (request, accessToken, refreshToken, profile, done) {
db.query('SELECT * FROM aim_user_info WHERE email=?', [profile.email], function(error, result){
if (error) {
throw error;
}
if (result.length === 0) {
db.query('INSERT INTO aim_user_info (session_id, email) VALUES(?,?)', [request.session.passport.user, profile.email], function(error2, result){
if (error2) {
throw error2;
}
});
}
});
// console.log(profile);
// console.log(accessToken);
return done(null, profile);
}
)
);
app.post('/sendNickname', (req, res) => {
let post = req.body;
let session_id = req.session.passport.user;
db.query('UPDATE aim_user_info SET nickname=? WHERE session_id=?', [post.nickname, session_id], function(error, result){
if (error) {
throw error;
}
});
// console.log('Got body:', req.body);
res.sendStatus(200);
});
해당 부분이 null이라서? 근데 쿠키랑 관련있나? 나중에 시간 날 때 고려해볼 것.
세션 유효 시간이 있다면 만료 후에도 이 때와 같은 id를 받을지 볼 것