@betha-plataforma/oauth
Version:
Biblioteca JavaScript para lidar com o fluxo do OAuth 2.0 em aplicações Web, com suporte a TypeScript.
35 lines • 3.01 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateCodeChallengePair = void 0;
const Crypto_1 = require("../Helpers/Crypto");
const convertHexPairsToBytes = (hexPairs) => {
return String.fromCharCode(...hexPairs.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));
};
const urlEncode = (str) => {
return btoa(convertHexPairsToBytes(str))
.replace(/=/g, '')
.replace(/\+/g, '-')
.replace(/\//g, '_');
};
const generateChallenge = (verifier) => __awaiter(void 0, void 0, void 0, function* () {
const hash = yield Crypto_1.sha256(verifier);
return urlEncode(hash);
});
const generateVerifier = () => {
return Crypto_1.generateRandomString(32);
};
exports.generateCodeChallengePair = () => __awaiter(void 0, void 0, void 0, function* () {
const verifier = generateVerifier();
const challenge = yield generateChallenge(verifier);
return { challenge, verifier };
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUEtDRS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvUHJvdG9jb2wvUEtDRS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxpREFBb0U7QUFPcEUsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtJQUNsRCxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNGLENBQUMsQ0FBQztBQUVGLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBVyxFQUFVLEVBQUU7SUFDeEMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7U0FDakIsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7U0FDbkIsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztBQUN6QixDQUFDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLENBQU8sUUFBZ0IsRUFBbUIsRUFBRTtJQUNwRSxNQUFNLElBQUksR0FBVyxNQUFNLGVBQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QixDQUFDLENBQUEsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUcsR0FBVyxFQUFFO0lBQ3BDLE9BQU8sNkJBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRVcsUUFBQSx5QkFBeUIsR0FBRyxHQUFxQyxFQUFFO0lBQzlFLE1BQU0sUUFBUSxHQUFXLGdCQUFnQixFQUFFLENBQUM7SUFDNUMsTUFBTSxTQUFTLEdBQVcsTUFBTSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQ2pDLENBQUMsQ0FBQSxDQUFDIn0=