|
|
@@ -12,12 +12,23 @@ module.exports = function(crowi, app) {
|
|
|
, Revision = crowi.model('Revision')
|
|
|
, actions = {};
|
|
|
|
|
|
+
|
|
|
+ var clearGoogleSession = function(req) {
|
|
|
+ req.session.googleAuthCode
|
|
|
+ = req.session.googleId
|
|
|
+ = req.session.googleEmail
|
|
|
+ = req.session.googleName
|
|
|
+ = req.session.googleImage
|
|
|
+ = null;
|
|
|
+ };
|
|
|
var loginSuccess = function(req, res, userData) {
|
|
|
req.user = req.session.user = userData;
|
|
|
if (!userData.password) {
|
|
|
return res.redirect('/me/password');
|
|
|
}
|
|
|
|
|
|
+ clearGoogleSession(req);
|
|
|
+
|
|
|
var jumpTo = req.session.jumpTo;
|
|
|
if (jumpTo) {
|
|
|
req.session.jumpTo = null;
|
|
|
@@ -214,10 +225,11 @@ module.exports = function(crowi, app) {
|
|
|
googleImage.replace(/^.+\/(.+\..+)$/, '$1')
|
|
|
);
|
|
|
|
|
|
- axios.get(googleImage)
|
|
|
+ axios.get(googleImage, {responseType: 'stream'})
|
|
|
.then(function(response) {
|
|
|
var type = response.headers['content-type'];
|
|
|
var fileStream = response.data;
|
|
|
+ fileStream.length = parseInt(response.headers['content-length']);
|
|
|
|
|
|
fileUploader.uploadFile(filePath, type, fileStream, {})
|
|
|
.then(function(data) {
|
|
|
@@ -243,6 +255,7 @@ module.exports = function(crowi, app) {
|
|
|
});
|
|
|
} else { // method GET of form is not valid
|
|
|
debug('session is', req.session);
|
|
|
+ var isRegistering = true;
|
|
|
// google callback を受ける可能性もある
|
|
|
var code = req.session.googleAuthCode || null;
|
|
|
var googleId = req.session.googleId || null;
|
|
|
@@ -272,10 +285,10 @@ module.exports = function(crowi, app) {
|
|
|
req.flash('registerWarningMessage', 'このメールアドレスのGoogleアカウントはコネクトできません。');
|
|
|
return res.redirect('/login?register=1');
|
|
|
}
|
|
|
- return res.render('login', { googleId, googleEmail, googleName, googleImage, });
|
|
|
+ return res.render('login', { isRegistering, googleId, googleEmail, googleName, googleImage, });
|
|
|
});
|
|
|
} else {
|
|
|
- return res.render('login', { googleId, googleEmail, googleName, googleImage, });
|
|
|
+ return res.render('login', { isRegistering, googleId, googleEmail, googleName, googleImage, });
|
|
|
}
|
|
|
}
|
|
|
};
|