【发布时间】:2022-11-22 12:56:12
【问题描述】:
我正在让客户端通过 OAuth2 进行授权,但我一直收到“代码验证程序无效”错误。
async function encode(input: string): Promise<string> {
return btoa(string).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
}
async function digestMessage(message) {
const msgUint8 = new TextEncoder().encode(message); // encode as (utf-8) Uint8Array
const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8); // hash the message
const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array
const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join(''); // convert bytes to hex string
return hashHex;
}
function generateRandomString (len?: number) {
var arr = new Uint8Array((len || 40) / 2)
window.crypto.getRandomValues(arr)
return Array.from(arr, dec2hex).join('')
}
async function pkceChallengeFromVerifier(v: string) {
let hash = await digestMessage(v)
let challenge = await encode(hash)
return challenge
}
无论我输入什么验证器,它都会不断给我错误。
【问题讨论】:
标签: typescript oauth-2.0 pkce