| import { createHash, randomBytes } from 'crypto' |
|
|
| function base64URLEncode(buffer: Buffer): string { |
| return buffer |
| .toString('base64') |
| .replace(/\+/g, '-') |
| .replace(/\//g, '_') |
| .replace(/=/g, '') |
| } |
|
|
| export function generateCodeVerifier(): string { |
| return base64URLEncode(randomBytes(32)) |
| } |
|
|
| export function generateCodeChallenge(verifier: string): string { |
| const hash = createHash('sha256') |
| hash.update(verifier) |
| return base64URLEncode(hash.digest()) |
| } |
|
|
| export function generateState(): string { |
| return base64URLEncode(randomBytes(32)) |
| } |
|
|