首页 > 解决方案 > Keycloak:缺少参数:code,如何使用POST请求获取Keycloak中的code

问题描述

我正在尝试POST使用 POSTMAN 向我的 Keycloak 发出请求,但我不断收到错误消息Code not valid。我不确定如何获取密钥斗篷的代码。

当我使用愚蠢的参数发出请求时,我已经创建了领域、用户、客户端等,然后我得到了带有访问令牌的成功消息:

POST http://localhost:8080/auth/realms/blog_demo/protocol/openid-connect/token

grant_type: password
redirect_url: http://localhost:3000/callback
client_id: blog-post-demo-client-001
client_secret: 9a465bd2-1076-4c18-a12a-b53zd4f0908q
response_type: code
username: user1
password: password123

我将访问令牌放入https://jwt.io/以获取更多信息,但我看不到code任何地方。

现在我正在尝试使用以下信息发出请求:

 POST http://localhost:8080/auth/realms/blog_demo/protocol/openid-connect/token
    
    grant_type: authorization_code
    redirect_url: http://localhost:3000/callback
    client_id: blog-post-demo-client-001
    client_secret: 9a465bd2-1076-4c18-a12a-b53zd4f0908q
    response_type: code

我收到以下错误:

{
    "error": "invalid_request",
    "error_description": "Missing parameter: code"
}

我知道我必须code在我的请求中发送,但我不确定我应该发送什么价值。有人可以帮我解决这个问题。

在此处输入图像描述

标签: oauth-2.0postmankeycloakaccess-token

解决方案


从您的请求中删除不必要的参数。这应该工作:

POST http://localhost:8080/auth/realms/blog_demo/protocol/openid-connect/token

grant_type: password
client_id: blog-post-demo-client-001
client_secret: 9a465bd2-1076-4c18-a12a-b53zd4f0908q
username: user1
password: password123

推荐阅读