Keycloak授权码格式无效

问题描述 投票:0回答:1

我有一个运行“标准授权代码流程”的本地 Keycloak 服务器。

我使用此 url 调用授权端点:

http://localhost:8080/realms/lapse/protocol/openid-connect/auth?client_id=lapse-app&redirect_uri=http://localhost:8080&response_type=code

身份验证成功后,我正确地重定向到:

http://localhost:8282?session_state=6c93f810-d934-4e20-adcc-b21748d3b26a&iss=http%3A%2F%2Flocalhost%3A8080%2Frealms%2Flapse&code=6cc168fc-e894-4f8b-a401-ec3267dc69b1.6c93f810-d934-4e20-adcc-b21748d3b26a.eec3a0c8-ff4a-437b-ad17-5f6228422b0f

给我授权令牌:

6cc168fc-e894-4f8b-a401-ec3267dc69b1.6c93f810-d934-4e20-adcc-b21748d3b26a.eec3a0c8-ff4a-437b-ad17-5f6228422b0f

还通过 Cookie 添加 JWT(虽然我不需要它,但这表明到目前为止一切都正常工作,我认为)。

当我现在向令牌端点发送请求时,使用这些参数时会收到错误

Code not valid

{
    grant_type : authorization_code,
    code : 6cc168fc-e894-4f8b-a401-ec3267dc69b1.6c93f810-d934-4e20-adcc-b21748d3b26a.eec3a0c8-ff4a-437b-ad17-5f6228422b0f,
    redirect_uri : http://localhost:8282,
    client_id : lapse-app,
    client_secret : ZLpHFtQzoYdf21rIDwblZlZZ0bFntaD7
}

我不明白为什么会发生这种情况。我从重定向中获得的授权代码似乎与我在示例中看到的格式不同,我是否必须在将其发送到令牌端点之前重新格式化它?

keycloak openid-connect openid
1个回答
0
投票

我发现你的

redirect_uri
有所不同。

您使用端口

8080

调用了 OpenID 提供商
...&redirect_uri=http://localhost:8080&response_type=code

身份验证成功后,您将被重定向到端口

8282

http://localhost:8282?....

当您尝试执行代码到令牌时,您使用了

redirect_uri
和端口
8282

http://localhost:8282

请注意,在请求身份验证并执行代码到令牌时,您必须使用完全相同的

redirect_uri

© www.soinside.com 2019 - 2024. All rights reserved.