gpt4 book ai didi

IdentityServer4 PKCE 错误 : "Transformed code verifier does not match code challenge"

转载 作者:行者123 更新时间:2023-12-03 23:38:02 25 4
gpt4 key购买 nike

我无法使用 Postman 获得 IdentityServer4 PKCE 授权。

我使用在线工具创建了必要的部分:

选择一个随机字符串:

1234567890



获取其 SHA-256 哈希值:

c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646



Base64 编码散列以获得代码挑战:

Yzc3NWU3Yjc1N2VkZTYzMGNkMGFhMTExM2JkMTAyNjYxYWIzODgyOWNhNTJhNjQyMmFiNzgyODYyZjI2ODY0Ng==



在浏览器中,我导航到以下 URL,填写我的凭据并从碎片化的重定向 URL 中检索代码。
GET https://localhost:5000/connect/authorize
?client_id=pkceclient
&scope=openid
&response_type=code
&redirect_uri=https://jwt.ms
&state=abc
&nonce=xyz
&code_challenge=Yzc3NWU3Yjc1N2VkZTYzMGNkMGFhMTExM2JkMTAyNjYxYWIzODgyOWNhNTJhNjQyMmFiNzgyODYyZjI2ODY0Ng==
&code_challenge_method=S256

在兑换 token 代码时,我传递了 code_verifier(SHA-256 哈希),但我的 IdentityServer 记录了以下错误:

"Transformed code verifier does not match code challenge".


POST https://localhost:5000/connect/token
client_id=pkceclient
grant_type=authorization_code
code:-CesrmjPYjdLdDd5AviOZpR6GdjjkZia_ZapoJdGUZI
redirect_uri=https://jwt.ms
code_verifier=c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646

在他的 blog post 中,作者使用以下代码生成零件。
var verifier = CryptoRandom.CreateRandomKeyString(64);
var challenge = verifier.ToCodeChallenge();

但是我在 ToCodeChallenge 方法的存储库中找不到代码。

为什么我手动生成的质询与验证过程中使用的质询不匹配,我错过了什么?

最佳答案

在将这个问题放在一起时,我遇到了 specification PKCE 文档并找到以下行:

code_challenge = BASE64URL-ENCODE(SHA256(ASCII(code_verifier)))


原来我使用的在线工具没有执行 ASCII 部分。
实现代码中的步骤我得到以下结果,当替换之前的值时,在过程的第二步中通过了验证。
var codeVerifier = "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646";
var codeVerifierBytes = Encoding.ASCII.GetBytes(codeVerifier);
var hashedBytes = codeVerifierBytes.Sha256();
var transformedCodeVerifier = Base64Url.Encode(hashedBytes);

code_challenge: 51FaJvQFsiNdiFWIq2EMWUKeAqD47dqU_cHzJpfHl-Q


code_verifier: c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646

关于IdentityServer4 PKCE 错误 : "Transformed code verifier does not match code challenge",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58687154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com