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

Laravel Socialite LinkedIn登录报错:未授权作用域及参数缺失问题

解决Laravel Socialite LinkedIn登录的两个核心问题

1. 处理「Unauthorized scope error scope profile is not authorized」错误

LinkedIn OpenID Connect模式下已废弃旧的独立profile scope,需使用符合规范的scope集合,同时确保开发者控制台权限配置正确:

  • 在redirectToProvider方法中手动指定正确的scope:
    public function redirectToProvider($provider)
    {
        return Socialite::driver($provider)
            ->scopes(['openid', 'profile', 'email'])
            ->redirect();
    }
    
  • 登录LinkedIn开发者控制台,进入你的应用「Products」页面,确认已启用OpenID Connect、「Email Address」、「Basic Profile」这三项权限,未启用的话点击添加并完成审核流程。

2. 处理「A required parameter 'code' is missing」错误

这个错误通常是路由错误或配置未生效导致的:

  • 修正路由拼写错误:你的第一个路由中domian-login存在拼写错误(少了字母a),修正为:
    Route::get('domain-login/{provider}', [ControllerName::class, 'redirectToProvider']);
    
  • 校验回调URI一致性:确保LinkedIn开发者控制台中配置的回调URI,与ENV文件里的LINKEDIN_URL、路由路径完全匹配(注意是否包含api前缀、域名是否一致)。
  • 清除Laravel配置缓存:运行以下命令确保ENV配置生效:
    php artisan config:clear
    
  • 确认Socialite驱动配置:在config/services.php中,确保LinkedIn配置指向OpenID Provider类(仅当使用旧版Socialite时需要,新版默认支持):
    'linkedin' => [
        'client_id' => env('LINKEDIN_CLIENT_ID'),
        'client_secret' => env('LINKEDIN_CLIENT_SECRET'),
        'redirect' => env('LINKEDIN_URL'),
        'provider' => \Laravel\Socialite\Two\LinkedInOpenIdProvider::class,
    ],
    

额外优化:ENV配置格式

将ENV中的三个变量拆分单独行,避免空格导致的解析异常:

LINKEDIN_CLIENT_ID=xyzSomeID
LINKEDIN_CLIENT_SECRET=xyzSomeSecret
LINKEDIN_URL=https://mydomainname.com/api/domain-login/linkedin/callback

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:20:02