|
|
@@ -246,19 +246,19 @@ module.exports = function(crowi, app) {
|
|
|
}
|
|
|
|
|
|
passport.authenticate('google', {
|
|
|
- access_type: 'offline',
|
|
|
scope: ['profile', 'email'],
|
|
|
})(req, res);
|
|
|
};
|
|
|
|
|
|
const loginPassportGoogleCallback = function(req, res, next) {
|
|
|
- // enable google+ api and then this works
|
|
|
passport.authenticate('google', {failureRedirect: '/login'}, (request, response) => {
|
|
|
ExternalAccount.findOrRegister(
|
|
|
'google',
|
|
|
response.id,
|
|
|
response.displayName,
|
|
|
- `${response.name.givenName} ${response.name.familyName}`
|
|
|
+ `${response.name.givenName} ${response.name.familyName}`,
|
|
|
+ response.emails[0].value,
|
|
|
+ googleLanguageCodeConverter(response.language)
|
|
|
)
|
|
|
.catch((err) => {
|
|
|
throw err;
|
|
|
@@ -280,6 +280,20 @@ module.exports = function(crowi, app) {
|
|
|
})(req, res, next);
|
|
|
};
|
|
|
|
|
|
+ /**
|
|
|
+ * converts google language code to growi language code
|
|
|
+ * add more languages as growi supports them
|
|
|
+ * reference: https://developers.google.com/admin-sdk/directory/v1/languages
|
|
|
+ * @param {*} googleLanguageCode
|
|
|
+ */
|
|
|
+ const googleLanguageCodeConverter = googleLanguageCode => {
|
|
|
+ let languageCode = googleLanguageCode;
|
|
|
+ if (googleLanguageCode !== 'ja') {
|
|
|
+ languageCode = 'en-US';
|
|
|
+ }
|
|
|
+ return languageCode;
|
|
|
+ };
|
|
|
+
|
|
|
return {
|
|
|
loginFailure,
|
|
|
loginWithLdap,
|