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

CodeIgniter集成LinkedIn登录跳转遇错误页面,求排查问题

解决CodeIgniter集成LinkedIn登录的授权错误问题

我帮你排查了一下,你遇到的LinkedIn授权页面错误,核心问题出在授权链接的参数格式错误,具体来说有这几个关键点需要修正:

1. 移除参数值的多余单引号

你当前的授权链接里,client_id和redirect_uri的值被额外的单引号包裹了(比如client_id='<?php echo ... ?>'),这会导致LinkedIn接收到的参数值是带单引号的字符串,和你在开发者平台配置的Client_ID、回调地址完全不匹配,直接触发验证失败。

修复后的授权链接代码

把原来的链接代码改成这样,去掉参数值的单引号,同时给回调地址加上URL编码处理:

<a class="btn btn-linkedin" href="https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=<?php echo $this->config->item('Client_ID'); ?>&redirect_uri=<?php echo urlencode($this->config->item('callback_url')); ?>&state=98765EeFWf45A53sdfKef4233&scope=r_basicprofile r_emailaddress">
    <img src="./images/linkedin_connect_button.png" alt="Sign in with LinkedIn"/>
</a>

添加urlencode()是为了确保回调地址中的特殊字符(比如斜杠、域名特殊标识)被正确编码,避免URL解析时出现异常。

2. 验证回调地址的精确匹配

LinkedIn对回调地址的校验非常严格,你需要确保:

  • 开发者平台中配置的redirect_uri和代码中使用的完全一致(包括协议http/https、完整域名、路径,不能有多余的斜杠或空格)
  • 如果你的站点是HTTPS协议,回调地址必须同步使用HTTPS,不能混用HTTP

3. 检查应用状态与权限范围

  • 如果你的LinkedIn应用处于沙盒模式,需要先在开发者平台的「测试」选项卡中添加测试用户,否则普通用户无法完成授权流程
  • 注意scope参数中的权限是否为LinkedIn当前支持的:r_basicprofile和r_emailaddress是旧版API权限,若使用新版LinkedIn API,可能需要改用profile、email这类权限(建议参考LinkedIn官方最新文档确认)

4. 快速调试建议

你可以先手动打印生成的授权URL,直观检查参数是否正确:

echo "https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=".$this->config->item('Client_ID')."&redirect_uri=".urlencode($this->config->item('callback_url'))."&state=98765EeFWf45A53sdfKef4233&scope=r_basicprofile r_emailaddress";

把输出的URL复制到浏览器中访问,若仍报错,LinkedIn会给出具体错误提示(比如“invalid client_id”“redirect_uri mismatch”),可以根据提示进一步定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:20:09