LinkedIn授权获取请求令牌失败:未知错误排查求助
LinkedIn OpenID Connect授权异常排查与解决
核心问题定位
你的配置中server_url参数错误,LinkedIn的OpenID Connect/OAuth 2.0服务端点并非https://www.linkedin.com/oauth,这是导致无法获取请求令牌的主要原因。
排查与解决步骤
修正OpenID服务器地址
LinkedIn的OAuth 2.0/OpenID Connect相关接口统一在https://www.linkedin.com/oauth/v2路径下,需替换配置中的server_url:"openid_connect": { "APPS": [ { "provider_id": "linkedin", "name": "LinkedIn", "client_id": LINKEDIN_CLIENT_ID, "secret": LINKEDIN_SECRET, "settings": { "server_url": "https://www.linkedin.com/oauth/v2", # 若框架需手动指定端点,可补充以下配置: # "authorization_endpoint": "https://www.linkedin.com/oauth/v2/authorization", # "token_endpoint": "https://www.linkedin.com/oauth/v2/accessToken", # "userinfo_endpoint": "https://api.linkedin.com/v2/userinfo" }, } ] },验证Redirect URI完全匹配
确保LinkedIn应用后台配置的redirect_uri与你的回调地址完全一致,包括HTTPS协议、路径中的斜杠,LinkedIn对URI匹配的校验非常严格,任何细微差异都会导致请求失败。检查LinkedIn应用权限与状态
- 确认应用后台已开启
openid、profile、email等OpenID Connect基础权限; - 生产环境需确保应用状态为「已发布」,未发布应用仅支持内部测试账号授权。
- 确认应用后台已开启
查看详细错误日志
- 开启应用框架的调试日志,查看请求LinkedIn时的HTTP响应状态码及具体错误信息,可定位client_id/secret错误、权限不足等细节问题;
- 用curl模拟令牌请求验证参数有效性:
curl -X POST https://www.linkedin.com/oauth/v2/accessToken \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=authorization_code" \ -d "code=YOUR_AUTHORIZATION_CODE" \ -d "redirect_uri=https://my-website.com/accounts/linkedin/login/callback/" \ -d "client_id=YOUR_CLIENT_ID" \ -d "client_secret=YOUR_CLIENT_SECRET"
内容的提问来源于stack exchange,提问作者micho
相关产品推荐
相关产品推荐

