UNPKG

@topgroup/diginext

Version:

A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.

62 lines (61 loc) 2.86 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.googleStrategy = void 0; const lodash_1 = require("lodash"); const passport_google_oauth2_1 = __importDefault(require("passport-google-oauth2")); const app_config_1 = require("../../app.config"); const services_1 = require("../../services"); exports.googleStrategy = new passport_google_oauth2_1.default({ clientID: app_config_1.Config.grab("GOOGLE_CLIENT_ID", "g0fTFGUDWCjmH21MnxTIcsPtD8JHDa2aA8UNgCpp2r2cf58aMlIut1gJ7abGotPi"), clientSecret: app_config_1.Config.grab("GOOGLE_CLIENT_SECRET", "c5ENUrEiyMXfgQ7nbZS26GTfr4rOxBP1xcx34p8OD7yIBwVmqLyumYdd0niy2dKe"), callbackURL: `${app_config_1.Config.BASE_URL}${app_config_1.Config.grab("GOOGLE_CALLBACK_PATH", "/auth/google/callback")}`, userProfileURL: "https://www.googleapis.com/oauth2/v3/userinfo", passReqToCallback: true, }, function (request, accessToken, refreshToken, profile, done) { process.nextTick(async function () { // console.log(`googleStrategy :>>`, { profile }); // console.log(accessToken); // console.log(`googleStrategy :>> profile.email =`, profile.email); const userSvc = new services_1.UserService(); let user = await userSvc.findOne({ email: profile.email }, { populate: ["roles"] }); // console.log("[google login] user :>> ", user); // console.log(`googleStrategy :>>`, { user }); if (user) { const updateData = {}; if (user.image != profile.picture) updateData.image = profile.picture; if (user.name != profile.displayName) updateData.name = profile.displayName; if (!(0, lodash_1.isEmpty)(updateData)) user = await userSvc.updateOne({ _id: user._id }, updateData); request.user = user; return done(null, { ...user, accessToken, refreshToken }); } const provider = { name: "google", user_id: profile.id, access_token: accessToken, }; // console.log("RES Create User DX Site:", createUserRes); // Create user successfully in DX site then continue to create DX CLI const newUser = await userSvc.create({ providers: [provider], name: profile.displayName, email: profile.email, image: profile.picture, verified: profile.verified, isActive: true, }); if (newUser) { user = newUser; request.user = user; return done(null, { ...user, accessToken, refreshToken }); } else { return done(null, newUser); } }); });