HTTP 请求到 keycloak 并失眠

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

我正在使用 Keycloak 和 NestJS 为新应用程序创建一个安全后端。我导入了包含客户端和用户的领域,我正在尝试通过 Insomnia 获取令牌并访问受保护的数据。

尝试使用通过 JSON 传递数据的

{{ _.baseUrl }}/protocol/openid-connect/auth
请求到达端点
POST
正在返回

keycloak-1  | 2024-03-11 16:01:56,436 WARN  [org.keycloak.protocol.oidc.endpoints.request.AuthorizationEndpointRequestParserProcessor] (executor-thread-131) Parameter 'client_id' not present or present multiple times in the HTTP request parameters
keycloak-1  | 2024-03-11 16:01:56,437 WARN  [org.keycloak.events] (executor-thread-131) type="LOGIN_ERROR", realmId="55542514-fc71-4e4e-be3e-42af869de2a7", clientId="null", userId="null", ipAddress="172.18.0.1", error="invalid_request"

在我的 Docker Keycloak 日志中,以及 Insomnia 响应预览窗口中的

400 Bad request error

起初我只是传递我的凭据,这个错误让我重新思考整个事情并传递 client_id 和 client_secret 以及 JSON 数据,但错误我仍然是一样的。

我正在关注本教程,但它似乎不适合 Keycloak 环境

如何通过 Insomnia 到达我的 Keycloak 端点以及将来如何获取更详细的日志?

oauth-2.0 keycloak insomnia
1个回答
0
投票

失眠有点难。

概述

#0 Keycloak 启动 详情请看这里

访问令牌 URL

POST "http://localhost:8180/realms/master/protocol/openid-connect/token"

#1 克里特岛新系列

#2 命名为

Keycloak

#3 点击齿轮图标进行设置

#4 基础环境

{
    "baseUrl": "http://localhost:8180",
    "username": "admin",
    "password": "admin",
    "access-token": ""
}

#5 添加 HTTP 请求

#6-7 通过POST API创建

Get-Token

#8 CTRL + 空格 可以添加get环境变量

详情请看这里

#9 使用环境变量创建 URL

{{ _.baseUrl }}/realms/master/protocol/openid-connect/token

#10 通过

Form URL Encoded

添加 Body 键/值

与Postman中的

/x-www-form-urlencoded
相同

#11~13 添加4个键/值

从环境变量获取用户名和密码

通过 CTRL + 空格键

#14 获取代币 点击发送

结果

奖金

如何使用访问令牌?

添加

Request
获取用户列表

#1 开放基础环境 在

access-token
中将光标置于“”

CTRL+空格

选择

f Response => Body Attribute

结果

#2 点击

reponse 'body', '', '', 'never',60

选择:请求

POST Get Token

过滤器(JSONPath 或 XPath)

$.access_token

结果

最后,通过

access-token

获取用户列表

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