UNPKG

oauth-v2-client

Version:
24 lines (23 loc) 878 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateCodeChallenge = exports.generateCodeVerifier = void 0; var crypto_js_1 = require("crypto-js"); var punycode_1 = require("punycode"); /** * Generate code verifier for PKCE implementation */ function generateCodeVerifier() { return crypto_js_1.enc.Hex.stringify((0, crypto_js_1.SHA1)(Math.random().toString(36))); } exports.generateCodeVerifier = generateCodeVerifier; /** * Generate code challenge from code verifier * @param codeVerifier code verifier */ function generateCodeChallenge(codeVerifier) { return crypto_js_1.enc.Base64.stringify((0, crypto_js_1.SHA256)((0, punycode_1.toASCII)(codeVerifier))) .replace(/=/g, "") .replace(/\+/g, "-") .replace(/\//g, "_"); } exports.generateCodeChallenge = generateCodeChallenge;