我正在使用 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 端点以及将来如何获取更详细的日志?
失眠有点难。
#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
获取用户列表