pkce-js
Version:
Generate PKCE verifier and code_challenge in a simple way.
29 lines (23 loc) • 658 B
text/typescript
import { randomString, base64Url, b64Sha256Hash } from './helpers';
function createVerifier(length: number = 128): string {
if (length < 43 || length > 128) {
throw new Error(
`Verifier has to be between 43 and 128 characters. Recieved: ${length}`
);
}
return randomString(length);
}
function createChallenge(verifier: string): string {
return base64Url(b64Sha256Hash(verifier));
}
export function pkce(length: number = 128): {
verifier: string;
challenge: string;
} {
const verifier = createVerifier(length);
const challenge = createChallenge(verifier);
return {
verifier: verifier,
challenge: challenge,
};
}