()
| 54 | } |
| 55 | |
| 56 | async function generatePKCE(): Promise<PkceCodes> { |
| 57 | const verifier = generateRandomString(64) |
| 58 | const hash = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(verifier)) |
| 59 | return { verifier, challenge: base64UrlEncode(hash) } |
| 60 | } |
| 61 | |
| 62 | function generateRandomString(length: number): string { |
| 63 | const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~" |
no test coverage detected