authvisage-sdk
Version:
authvisage client sdk
19 lines • 716 B
JavaScript
/**
* Utility class for handling PKCE authentication
*/
export class PKCEHandler {
/**
* Generates a PKCE challenge pair
*/
static async generate() {
const codeVerifier = crypto.randomUUID();
const encoder = new TextEncoder();
const data = encoder.encode(codeVerifier);
const hash = await crypto.subtle.digest("SHA-256", data);
const codeChallenge = Buffer.from(hash).toString("base64url");
document.cookie = `${this.PKCE_COOKIE_NAME}=${codeVerifier}; Secure; HttpOnly; SameSite=Lax; Path=/;`;
return { codeVerifier, codeChallenge };
}
}
PKCEHandler.PKCE_COOKIE_NAME = "authVisage:pkce_verifier";
//# sourceMappingURL=pkceHandler.js.map