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

Laravel Socialite GitHub认证:成功认证后重定向异常问题

Laravel Socialite GitHub认证后无法跳转至仪表盘问题排查

问题场景

在Laravel应用中使用Laravel Socialite实现GitHub认证时,已确认配置无误且能成功从GitHub获取用户数据,但用户登录后无法重定向至仪表盘,始终停留在登录页。

相关代码(OAuthController.php)

public function redirect($github)
{
    return Socialite::driver($github)
        ->setScopes(['read:user', 'public_repo'])
        ->redirect();
}

public function callback($github)
{
    try {
        $socialUser = Socialite::driver($github)->user();

        $user = User::where([
            'github' => $github,
            'github_id' => $socialUser->id,
        ])->first();

        if (! $user) {
            $user = User::create([
                'github_id' => $socialUser->id,
            ], [
                'username' => $socialUser->getNickname(),
                'name' => $socialUser->getName(),
                'email' => $socialUser->getEmail(),
                'github' => $socialUser->github,
                'github_token' => $socialUser->token,
            ]);
        }

        Auth::attempt($user);

        return redirect()->intended(route('dashboard'));
    } catch (\Exception $e) {
        return redirect()->route('login')->with('error', 'Something went wrong with ' . $github . ' login');
    }
}

代码潜在问题排查

  • Auth方法使用错误:Auth::attempt()需要传入用户凭证数组(如邮箱、密码)完成验证,不能直接传入User对象。正确的登录方式应为Auth::login($user),该方法可直接将指定用户登录到应用。
  • User::create参数错误:create()仅接受一个属性数组作为参数,代码中传入两个数组会导致username、email等字段无法写入数据库,造成用户数据不完整。正确写法:
$user = User::create([
    'github_id' => $socialUser->id,
    'username' => $socialUser->getNickname(),
    'name' => $socialUser->getName(),
    'email' => $socialUser->getEmail(),
    'github' => $github,
    'github_token' => $socialUser->token,
]);
  • 字段取值错误:$socialUser->github是无效取值,应直接使用方法参数$github。

最终解决方法

排查代码后问题仍未解决,进一步发现实际返回401错误但被显示为302跳转,最终通过重新创建GitHub OAuth应用解决了该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:36:14