You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LinkedIn OAuth 2.0客户端认证失败问题求助

Hey,我之前对接LinkedIn OAuth的时候也踩过这个invalid_client的坑,本质就是LinkedIn认不出你的客户端身份,大概率是这几个地方出问题了,咱们一个个排查:

常见排查方向

1. 漏传或写错客户端凭证

  • 首先,用授权码换令牌的请求必须同时传client_id和client_secret!你提供的请求URL明显截断了(最后到&gra就没了),大概率是漏传了client_secret参数——这个是LinkedIn验证你身份的核心凭证之一,绝对不能少。
  • 另外要确认client_id是不是完全复制对了:去LinkedIn开发者后台里找你的应用,核对Client ID有没有多空格、少字符,别把Client Secret当成client_id填进去了。

2. 请求方式用错了

LinkedIn明确要求:授权码换令牌必须用POST请求,而不是把参数拼在URL里的GET请求!你现在的写法是GET请求,这直接会导致验证失败。正确的做法是把所有参数(grant_type=authorization_code、client_id、client_secret、code、redirect_uri)放在POST请求体里,用application/x-www-form-urlencoded格式提交。

举个curl的正确示例:

curl -X POST 'https://www.linkedin.com/oauth/v2/accessToken' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=authorization_code&client_id=你的ClientID&client_secret=你的ClientSecret&code=你拿到的授权码&redirect_uri=http%3A%2F%2F127.0.0.1%3A8000%2FLinkedin%2Fsignin-linkedin%2F'

3. Redirect URI完全不匹配

你传的redirect_uri必须和LinkedIn开发者后台里应用授权设置中填写的地址完全一致——包括大小写、末尾的斜杠、端口号都不能差。比如后台里填的是http://127.0.0.1:8000/Linkedin/signin-linkedin(没有末尾斜杠),你传的带斜杠就会触发验证失败。

4. URL编码是否正确

虽然你已经对redirect_uri做了编码,但要确认是用标准的URL编码方式处理的,别手动转义出错。建议直接用你编程语言自带的URL编码工具(比如Python的urllib.parse.quote)来处理这个参数。

先把这几个点排查一遍,尤其是POST请求和client_secret的问题,应该就能解决这个错误了。

内容的提问来源于stack exchange,提问作者rSim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:24:11