oauth-v2-client
Version:
Oauth V2 client based on axios
24 lines (23 loc) • 878 B
JavaScript
;
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;