oauth-2.0 缺少参数代码_challenge_method

fae0ux8s  于 2022-10-31  发布在  其他
关注(0)|答案(2)|浏览(226)

我正在学习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

我得到的错误如下:-

http://localhost:8080/callback?error=invalid_request&error_description=Missing+parameter%3A+code_challenge_method&state=zxczczxc232
xurqigkl

xurqigkl1#

keycloak启用了PKCE,因此,作为客户端,您必须在初始身份验证请求中发送code_challenge。
您需要做的是:
1.生成随机值(code_verifier)
1.计算该值的哈希值(code_challenge)
1.在初始身份验证请求中发送code_challenge
1.稍后请求令牌时发送code_verifier
就像下面这张图片所显示的:

2sbarzqh

2sbarzqh2#

我也遇到过同样问题,我的解决方案是:修复步骤为:客户端任务-〉选择您的客户端-〉高级设置-〉转到选择框:代码交换验证密钥Code Challenge方法-〉使其为空(不选择任何东西)并且您不需要提供参数code_challenge_method

相关问题