【问题标题】:Missing parameter code_challenge_method缺少参数 code_challenge_method
【发布时间】:2022-01-16 18:49:09
【问题描述】:

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

【问题讨论】:

    标签: oauth-2.0 keycloak keycloak-rest-api


    【解决方案1】:

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

    你需要做的是:

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

    如下图所示:

    【讨论】:

    • 如何禁用PKCE?
    • 要禁用 PKCE,请参阅此处的文档keycloak.org/docs/latest/server_admin/#advanced-settings 但是,今天您应该学习和使用 PKCE,因为它是使用的最佳实践......而且它并不复杂。
    • 如果我的回答解决了您的问题,请随时接受。
    猜你喜欢
    • 2018-09-23
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多