|
|
@@ -37,6 +37,8 @@ module.exports = function(app) {
|
|
|
var nextAction = req.session.googleCallbackAction || '/login';
|
|
|
debug('googleCallback.nextAction', nextAction);
|
|
|
req.session.googleAuthCode = req.query.code || '';
|
|
|
+ debug('google auth code', req.query.code);
|
|
|
+
|
|
|
|
|
|
return res.redirect(nextAction);
|
|
|
};
|
|
|
@@ -133,7 +135,6 @@ module.exports = function(app) {
|
|
|
};
|
|
|
|
|
|
actions.register = function(req, res) {
|
|
|
- var registerForm = req.form.registerForm || {};
|
|
|
var googleAuth = require('../util/googleAuth')(app);
|
|
|
|
|
|
// ログイン済みならさようなら
|
|
|
@@ -147,6 +148,8 @@ module.exports = function(app) {
|
|
|
}
|
|
|
|
|
|
if (req.method == 'POST' && req.form.isValid) {
|
|
|
+ var registerForm = req.form.registerForm || {};
|
|
|
+
|
|
|
var name = registerForm.name;
|
|
|
var username = registerForm.username;
|
|
|
var email = registerForm.email;
|
|
|
@@ -229,22 +232,29 @@ module.exports = function(app) {
|
|
|
} else { // method GET
|
|
|
// google callback を受ける可能性もある
|
|
|
var code = req.session.googleAuthCode || null;
|
|
|
+ var googleId = req.session.googleId || null;
|
|
|
+ var googleEmail = req.session.googleEmail || null;
|
|
|
|
|
|
debug('register. if code', code);
|
|
|
+ // callback 経由で reigster にアクセスしてきた時最初だけこの if に入る
|
|
|
+ // code から email などを取得したらそれを session にいれて code は消去
|
|
|
if (code) {
|
|
|
googleAuth.handleCallback(req, function(err, tokenInfo) {
|
|
|
+ debug('tokenInfo', tokenInfo);
|
|
|
+ req.session.googleAuthCode = null;
|
|
|
+
|
|
|
if (err) {
|
|
|
req.flash('registerWarningMessage', 'Googleコネクト中にエラーが発生しました。');
|
|
|
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)) {
|
|
|
req.flash('registerWarningMessage', 'このメールアドレスのGoogleアカウントはコネクトできません。');
|
|
|
return res.redirect('/login?register=1');
|
|
|
}
|
|
|
-
|
|
|
return res.render('login', {
|
|
|
googleId: googleId,
|
|
|
googleEmail: googleEmail,
|
|
|
@@ -252,6 +262,8 @@ module.exports = function(app) {
|
|
|
});
|
|
|
} else {
|
|
|
return res.render('login', {
|
|
|
+ googleId: googleId,
|
|
|
+ googleEmail: googleEmail,
|
|
|
});
|
|
|
}
|
|
|
}
|