mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-01-25 18:02:11 -05:00
16 lines
436 B
TypeScript
16 lines
436 B
TypeScript
import { randomBytes, createHash } from 'crypto';
|
|
|
|
export function base64URLEncode(buf: Buffer): string {
|
|
return buf
|
|
.toString('base64')
|
|
.replace(/\+/g, '-')
|
|
.replace(/\//g, '_')
|
|
.replace(/=/g, '');
|
|
}
|
|
export const verifier = base64URLEncode(randomBytes(32));
|
|
|
|
function sha256(buf: Buffer) {
|
|
return createHash('sha256').update(buf).digest();
|
|
}
|
|
export const challenge = base64URLEncode(sha256(Buffer.from(verifier)));
|