缺少参数 code_challenge_method

utk*_*rma 7 oauth-2.0 keycloak keycloak-rest-api

我正在学习 oauth 2.0 并使用 keycloak 作为授权服务器。每当我发送以下请求时:-

http://localhost:7070/auth/realms/developer/protocol/openid-connect/auth?client_id=tcs&response_type=code&scope=openid profile&redirect_uri=http://localhost:8080/callback&state=zxczczxc232
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:-

http://localhost:8080/callback?error=invalid_request&error_description=Missing+parameter%3A+code_challenge_method&state=zxczczxc232
Run Code Online (Sandbox Code Playgroud)

And*_*ndy 16

keycloak 启用了 PKCE,因此,作为客户端,您必须发送 code_challenge 作为初始身份验证请求的一部分。

您需要做的是:

  1. 生成随机值(code_verifier)
  2. 计算该值的哈希值 (code_challenge)
  3. 在您的初始身份验证请求中发送 code_challenge
  4. 当您稍后要求令牌时发送 code_verifier

就像下面这张图所示:

在此输入图像描述