我在本地机器上运行了keycloak standalone。
我创建了名为“spring-test”的新领域,然后创建了名为“login-app”的新客户端
根据其余文件:
POST: http://localhost:8080/auth/realms/spring-test/protocol/openid-connect/token
{
"client_id": "login-app",
"username": "user123",
"password": "pass123",
"grant_type": "password"
}
我应该给予我的jwt令牌,但我得到了错误的请求与响应
{
"error": "invalid_request",
"error_description": "Missing form parameter: grant_type"
}
我假设我的配置中缺少一些东西。
编辑:我使用的是json body,但它应该是application/x-www-form-urlencoded
:下列机构工作:
token_type_hint:access_token&token:{token}&client_id:{client_id}&client_secret:{client_secret}
7条答案
按热度按时间64jmpszr1#
您应该在POST请求中发送数据,并将
Content-Type
头值设置为application/x-www-form-urlencoded
,而不是json。sshcrbum2#
带 curl
Postman (选择参数的x-www-form-urlencoded选项)
guz6ccqo3#
对于那些谁降落在这里从搜索寻找
JavaScript
解决方案。下面是使用
axios
将code
交换为具有keycloak
权限的access_token
的示例。发送请求:
您需要发送一个POST请求,其中的参数作为请求正文中的URL编码字符串。
FormData对象不起作用。
5vf7fwbs4#
对于那些使用curl有问题的用户,curl命令如下所示
curl命令在没有
Content-Type
标头的情况下也可以工作。t8e9dugd5#
以下是CURL命令示例
u1ehiz5o6#
我在SOAPUI测试中遇到过类似的问题。我们不应该发布一个json。当我清除“媒体类型”并选中“PostQueryString”复选框时,这个问题得到了解决。“媒体类型框”将自己设置为“www-form-urlencoded”。通过点击加号在顶部添加属性。
fd3cxomn7#
错误类型:{“错误”:“无效请求”,“错误描述”:“缺少表单参数:授权类型”}
大家好,如果您在发出POST请求以测试keycloak时遇到ARC“grant_type”错误,您可以在参数中进行以下修改:将标题设置为“内容类型”,并将值设置为“应用程序/x-www-form-urlencoded”