Initial content
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.createAuthentication = void 0;
|
||||
const config_1 = require("./config");
|
||||
const passport_1 = __importDefault(require("passport"));
|
||||
const passport_google_oauth20_1 = require("passport-google-oauth20");
|
||||
const data_1 = require("./data");
|
||||
const callbackURL = (0, config_1.getConfig)("auth:openauth:redirectionUrl");
|
||||
const clientID = (0, config_1.getSecret)("GOOGLE_CLIENT_ID");
|
||||
const clientSecret = (0, config_1.getSecret)("GOOGLE_CLIENT_SECRET");
|
||||
const createAuthentication = (app) => {
|
||||
passport_1.default.use(new passport_google_oauth20_1.Strategy({
|
||||
clientID, clientSecret, callbackURL,
|
||||
scope: ["email", "profile"],
|
||||
state: true
|
||||
}, async (accessToken, refreshToken, profile, callback) => {
|
||||
const emailAddr = profile.emails?.[0].value ?? "";
|
||||
const customer = await data_1.customer_repository.storeCustomer({
|
||||
name: profile.displayName, email: emailAddr,
|
||||
federatedId: profile.id
|
||||
});
|
||||
const { id, name, email } = customer;
|
||||
return callback(null, { id, name, email });
|
||||
}));
|
||||
passport_1.default.serializeUser((user, callback) => {
|
||||
callback(null, user.id);
|
||||
});
|
||||
passport_1.default.deserializeUser((id, callbackFunc) => {
|
||||
data_1.customer_repository.getCustomer(id).then(user => callbackFunc(null, user));
|
||||
});
|
||||
app.use(passport_1.default.session());
|
||||
};
|
||||
exports.createAuthentication = createAuthentication;
|
||||
Reference in New Issue
Block a user