我正在学习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
2条答案
按热度按时间xurqigkl1#
keycloak启用了PKCE,因此,作为客户端,您必须在初始身份验证请求中发送code_challenge。
您需要做的是:
1.生成随机值(code_verifier)
1.计算该值的哈希值(code_challenge)
1.在初始身份验证请求中发送code_challenge
1.稍后请求令牌时发送code_verifier
就像下面这张图片所显示的:
2sbarzqh2#
我也遇到过同样问题,我的解决方案是:修复步骤为:客户端任务-〉选择您的客户端-〉高级设置-〉转到选择框:代码交换验证密钥Code Challenge方法-〉使其为空(不选择任何东西)并且您不需要提供参数code_challenge_method