From 2abecea09cbe2cc71c8898ca4c002be5c0457165 Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 28 Apr 2019 00:20:06 -0400 Subject: [PATCH] feat: google auth module --- .../authentication/dropbox/authentication.js | 1 - .../authentication/google/authentication.js | 20 +++++++++++++------ .../authentication/google/definition.yml | 6 +++++- .../authentication/slack/definition.yml | 2 +- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/server/modules/authentication/dropbox/authentication.js b/server/modules/authentication/dropbox/authentication.js index 441a2096..35db4d23 100644 --- a/server/modules/authentication/dropbox/authentication.js +++ b/server/modules/authentication/dropbox/authentication.js @@ -16,7 +16,6 @@ module.exports = { clientSecret: conf.clientSecret, callbackURL: conf.callbackURL }, async (accessToken, refreshToken, profile, cb) => { - console.info(profile) try { const user = await WIKI.models.users.processProfile({ profile: { diff --git a/server/modules/authentication/google/authentication.js b/server/modules/authentication/google/authentication.js index 301c310b..de044b05 100644 --- a/server/modules/authentication/google/authentication.js +++ b/server/modules/authentication/google/authentication.js @@ -5,6 +5,7 @@ // ------------------------------------ const GoogleStrategy = require('passport-google-oauth20').Strategy +const _ = require('lodash') module.exports = { init (passport, conf) { @@ -13,12 +14,19 @@ module.exports = { clientID: conf.clientId, clientSecret: conf.clientSecret, callbackURL: conf.callbackURL - }, (accessToken, refreshToken, profile, cb) => { - WIKI.models.users.processProfile(profile).then((user) => { - return cb(null, user) || true - }).catch((err) => { - return cb(err, null) || true - }) + }, async (accessToken, refreshToken, profile, cb) => { + try { + const user = await WIKI.models.users.processProfile({ + profile: { + ...profile, + picture: _.get(profile, 'photos[0].value', '') + }, + providerKey: 'google' + }) + cb(null, user) + } catch (err) { + cb(err, null) + } }) ) } diff --git a/server/modules/authentication/google/definition.yml b/server/modules/authentication/google/definition.yml index 80a7a92d..70f2892d 100644 --- a/server/modules/authentication/google/definition.yml +++ b/server/modules/authentication/google/definition.yml @@ -5,8 +5,12 @@ author: requarks.io logo: https://static.requarks.io/logo/google.svg color: red darken-1 website: https://console.developers.google.com/ -isAvailable: false +isAvailable: true useForm: false +scopes: + - profile + - email + - openid props: clientId: type: String diff --git a/server/modules/authentication/slack/definition.yml b/server/modules/authentication/slack/definition.yml index dcd7b6b3..f5900b0f 100644 --- a/server/modules/authentication/slack/definition.yml +++ b/server/modules/authentication/slack/definition.yml @@ -7,7 +7,7 @@ color: green website: https://api.slack.com/docs/oauth isAvailable: true useForm: false -scope: +scopes: - identity.basic - identity.email - identity.avatar