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

使用Authlib与FastAPI实现LinkedIn登录时获取令牌报错求助

解决LinkedIn + Authlib获取令牌时"client_secret缺失"的问题

问题分析

你遇到的错误是因为LinkedIn的OAuth2令牌接口不支持默认的HTTP Basic认证方式,它要求client_id和client_secret作为POST表单参数传递,而Authlib默认会把客户端凭证放在HTTP请求头里,导致LinkedIn无法识别client_secret参数。

解决方案

修改oauth.register中的client_kwargs,添加auth_method: 'client_secret_post'配置,强制Authlib通过POST表单传递客户端凭证:

oauth.register(
    "linkedin",
    client_id=LINKEDIN_CLIENT_ID,
    client_secret=LINKEDIN_CLIENT_SECRET,
    api_base_url='https://api.linkedin.com/v2/',
    authorize_url='https://www.linkedin.com/oauth/v2/authorization',
    access_token_url='https://www.linkedin.com/oauth/v2/accessToken',
    client_kwargs={
        'scope': 'openid profile email',
        # 关键配置:指定用POST表单传递客户端凭证
        'auth_method': 'client_secret_post'
    }, 
)

额外验证点

  • 确认LINKEDIN_CLIENT_SECRET配置值不为空,且和LinkedIn开发者后台的密钥完全一致
  • 确认回调地址redirect_uri和LinkedIn应用后台配置的授权重定向URL完全匹配(包括HTTP/HTTPS、域名、路径)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:41:07