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

passport-linkedin-oauth2报错需传redirect_uri参数,遗漏配置位置求助

问题排查与解决方案

核心错误:配置参数名拼写错误

你的报错直接原因是策略配置中的callbackurl拼写错误,passport-linkedin-oauth2要求该配置项为驼峰命名的callbackURL(大写U和R)。参数名不匹配会导致Passport无法识别跳转地址,也就不会在授权请求中附加redirect_uri参数,进而触发LinkedIn的报错。

分步修复方案

  • 修正参数名:将配置中的callbackurl改为callbackURL
  • 修正Scope拼写:r_emailddress多了一个d,应改为r_emailaddress(否则后续无法获取邮箱权限)
  • 验证环境变量:确保process.env.LINKEDIN_CLIENT_ID和process.env.LINKEDIN_CLIENT_SECRET已正确加载,可在策略初始化前添加console.log(process.env.LINKEDIN_CLIENT_ID)确认
  • 核对LinkedIn平台的redirect_uri:确保开发者后台配置的跳转地址与callbackURL完全一致,包括协议(http/https)、端口、路径,LinkedIn对地址匹配的要求非常严格,任何细微差异(比如末尾斜杠)都会导致验证失败

修正后的示例代码

passport.use(
  new LinkedinStrategy(
    {
      clientID: process.env.LINKEDIN_CLIENT_ID,
      clientSecret: process.env.LINKEDIN_CLIENT_SECRET,
      callbackURL: "http://localhost:3000/api/auth/linkedin/callback", // 修正参数名
      scope: ["r_emailaddress", "r_liteprofile"], // 修正scope拼写
      state: true,
    },
    async (accessToken, refreshToken, profile, done) => {
      console.log(profile);
    }
  )
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:35:24