|
@@ -37,6 +37,8 @@ module.exports = function(app) {
|
|
|
var nextAction = req.session.googleCallbackAction || '/login';
|
|
var nextAction = req.session.googleCallbackAction || '/login';
|
|
|
debug('googleCallback.nextAction', nextAction);
|
|
debug('googleCallback.nextAction', nextAction);
|
|
|
req.session.googleAuthCode = req.query.code || '';
|
|
req.session.googleAuthCode = req.query.code || '';
|
|
|
|
|
+ debug('google auth code', req.query.code);
|
|
|
|
|
+
|
|
|
|
|
|
|
|
return res.redirect(nextAction);
|
|
return res.redirect(nextAction);
|
|
|
};
|
|
};
|
|
@@ -230,22 +232,29 @@ module.exports = function(app) {
|
|
|
} else { // method GET
|
|
} else { // method GET
|
|
|
// google callback を受ける可能性もある
|
|
// google callback を受ける可能性もある
|
|
|
var code = req.session.googleAuthCode || null;
|
|
var code = req.session.googleAuthCode || null;
|
|
|
|
|
+ var googleId = req.session.googleId || null;
|
|
|
|
|
+ var googleEmail = req.session.googleEmail || null;
|
|
|
|
|
|
|
|
debug('register. if code', code);
|
|
debug('register. if code', code);
|
|
|
|
|
+ // callback 経由で reigster にアクセスしてきた時最初だけこの if に入る
|
|
|
|
|
+ // code から email などを取得したらそれを session にいれて code は消去
|
|
|
if (code) {
|
|
if (code) {
|
|
|
googleAuth.handleCallback(req, function(err, tokenInfo) {
|
|
googleAuth.handleCallback(req, function(err, tokenInfo) {
|
|
|
|
|
+ debug('tokenInfo', tokenInfo);
|
|
|
|
|
+ req.session.googleAuthCode = null;
|
|
|
|
|
+
|
|
|
if (err) {
|
|
if (err) {
|
|
|
req.flash('registerWarningMessage', 'Googleコネクト中にエラーが発生しました。');
|
|
req.flash('registerWarningMessage', 'Googleコネクト中にエラーが発生しました。');
|
|
|
return res.redirect('/login?register=1'); // TODO Handling
|
|
return res.redirect('/login?register=1'); // TODO Handling
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- var googleId = tokenInfo.user_id;
|
|
|
|
|
- var googleEmail = tokenInfo.email;
|
|
|
|
|
|
|
+ req.session.googleId = googleId = tokenInfo.user_id;
|
|
|
|
|
+ req.session.googleEmail = googleEmail = tokenInfo.email;
|
|
|
|
|
+
|
|
|
if (!User.isEmailValid(googleEmail)) {
|
|
if (!User.isEmailValid(googleEmail)) {
|
|
|
req.flash('registerWarningMessage', 'このメールアドレスのGoogleアカウントはコネクトできません。');
|
|
req.flash('registerWarningMessage', 'このメールアドレスのGoogleアカウントはコネクトできません。');
|
|
|
return res.redirect('/login?register=1');
|
|
return res.redirect('/login?register=1');
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
return res.render('login', {
|
|
return res.render('login', {
|
|
|
googleId: googleId,
|
|
googleId: googleId,
|
|
|
googleEmail: googleEmail,
|
|
googleEmail: googleEmail,
|
|
@@ -253,6 +262,8 @@ module.exports = function(app) {
|
|
|
});
|
|
});
|
|
|
} else {
|
|
} else {
|
|
|
return res.render('login', {
|
|
return res.render('login', {
|
|
|
|
|
+ googleId: googleId,
|
|
|
|
|
+ googleEmail: googleEmail,
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|