Acumatica授权码换取token时返回invalid_client错误咨询
Acumatica 授权码流换Token返回
invalid_client的常见原因 操作流程:先调用https://[tenant].acumatica.com/identity/connect/authorize接口正常获取授权码,再调用https://[tenant].acumatica.com/identity/connect/token端点,传入grant_type=authorization_code、client_id、client_secret、授权码、重定向地址等参数时,收到如下400响应:
{ "error": "invalid_client" }
该错误代表客户端身份校验环节未通过,结合Acumatica的OAuth2实现规则,常见触发原因如下:
- 传参位置错误:
/identity/connect/token端点要求client_id和client_secret必须通过HTTP Basic Auth请求头传递,不能直接放在POST表单参数里。正确做法是把[你的client_id]:[你的client_secret]拼接后做Base64编码,放到请求头的Authorization: Basic <编码结果>位置,直接传表单参数Acumatica会识别不到有效客户端身份,直接报这个错。 - 凭据不匹配:请求里传的
client_id、client_secret和Acumatica后台OAuth2客户端配置页的取值不一致。注意这两个值大小写敏感,传参时多带了前后空格、特殊字符未做正确转义,或者客户端被手动禁用,都会触发校验失败。 - 授权流配置错误:对应客户端在Acumatica后台的配置里,没有勾选Authorization Code作为允许的授权类型,系统会判定当前客户端无权使用授权码流换token,直接返回客户端无效。
- 重定向地址不匹配:换token时传的
redirect_uri必须满足两个完全一致:一是和第一步调用authorize接口时传的redirect_uri完全一致,二是和Acumatica后台给该客户端配置的允许重定向地址完全一致。协议(http/https)、域名、路径、末尾斜杠、端口号任何一处有差异,都可能触发校验失败,部分版本的Acumatica不会单独返回重定向地址错误,而是直接报invalid_client。 - 授权码异常:拿到的授权码是一次性、短有效期的(通常有效期仅1-2分钟),如果拿到code后等待太久才调用token接口、code已经被使用过,或者这个code是颁发给其他client_id的,也可能返回该错误。
- 客户端密钥过期:如果配置客户端时给
client_secret设置了有效期,密钥过期后继续用旧值请求,也会被判定为无效客户端。
内容的提问来源于stack exchange,提问作者Erkan Y.
相关产品推荐
相关产品推荐

