UNPKG

@hellocoop/api

Version:

Client API for Hellō https://hello.dev

48 lines (47 loc) 1.97 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const helper_server_1 = require("@hellocoop/helper-server"); const config_1 = __importDefault(require("../lib/config")); const oidc_1 = require("../lib/oidc"); const handleLogin = async (req, res) => { const { provider_hint: providerParam, scope: scopeParam, target_uri, redirect_uri, nonce: providedNonce, prompt, login_hint, domain_hint } = req.query; if (!config_1.default.clientId) { res.status(500); res.send('Missing HELLO_CLIENT_ID configuration'); return; } const redirectURI = config_1.default.redirectURI || redirect_uri; if (!redirectURI) { console.log('Hellō: Discovering API RedirectURI route ...'); return res.send((0, helper_server_1.redirectURIBounce)()); } // parse out param strings const targetURIstring = (Array.isArray(providerParam) ? providerParam[0] : providerParam); const provider_hint = targetURIstring?.split(' ').map((s) => s.trim()); const scopeString = (Array.isArray(scopeParam) ? scopeParam[0] : scopeParam); const scope = scopeString?.split(' ').map((s) => s.trim()); const request = { redirect_uri: redirectURI, client_id: config_1.default.clientId, wallet: config_1.default.helloWallet, scope, provider_hint, login_hint, domain_hint, prompt }; if (providedNonce) request.nonce = providedNonce; const { url, nonce, code_verifier } = await (0, helper_server_1.createAuthRequest)(request); await (0, oidc_1.saveOidc)(req, res, { nonce, code_verifier, redirect_uri: redirectURI, target_uri: (Array.isArray(target_uri) ? target_uri[0] : target_uri) }); res.redirect(url); }; exports.default = handleLogin;