如何通过Postman使用Authorization Code Grant Type获取Keycloak的Access Token
问题原因
你遇到的「Invalid parameter: redirect_uri」错误确实是Callback URL为空导致的。
授权码模式要求Keycloak完成用户身份校验后,必须将授权码回传给预先约定的回调地址(也就是Postman里配置的Callback URL,对应OAuth2标准的redirect_uri参数),该参数不能为空,且必须和Keycloak对应客户端配置的「有效重定向URI」列表中的值完全匹配。
回调地址配置方案
你当前用Postman获取令牌的场景下,有两种可选配置:
- 方案一(更便捷,无需改动现有服务配置):
Postman的Callback URL填写https://oauth.pstmn.io/v1/callback,这是Postman官方自带的回调接收地址,你只需登录Keycloak管理后台,进入你使用的<myclientid>客户端配置页,在「有效重定向URI」一栏添加这个地址,保存后即可生效。 - 方案二(复用现有前端回调地址):
Postman的Callback URL填写你前端服务地址http://localhost:8080/*,同样需要先把该地址加到Keycloak对应客户端的有效重定向URI列表中,这种方式适合需要和前端共用回调逻辑的场景。
其他不确定配置的选择建议
- Client Authentication配置:优先选择
Send as Basic Auth header,这是OAuth2标准推荐的客户端凭证传递方式,安全性更高。如果该配置请求失败,可切换为Send client credentials in body,Keycloak对两种方式都提供原生支持。 - Add authorization data to配置:选择
Request Headers即可,和你之前直接粘贴令牌调用接口的逻辑一致,符合REST服务OAuth2授权的通用标准,无需额外修改后端适配。如果选择Request URL会将令牌放在请求参数中,多数服务默认不会从URL参数解析OAuth2令牌,会直接返回鉴权失败。
内容的提问来源于stack exchange,提问作者neblaz
相关产品推荐
相关产品推荐

