redirect(); } /** * Callback received from Discord */ public function callback(): RedirectResponse { $discordUser = Socialite::driver('discord')->user(); $user = User::where('discord_id', $discordUser->id)->first(); if (! $user) { // link by email if it already exists $user = User::where('email', $discordUser->email)->first(); if ($user) { $user->update([ 'discord_id' => $discordUser->id, 'discord_name' => $discordUser->nickname ?? $discordUser->name, 'discord_avatar' => $discordUser->avatar, ]); } else { // Create new user $user = User::create([ 'name' => $discordUser->name, 'email' => $discordUser->email, 'discord_id' => $discordUser->id, 'discord_name' => $discordUser->nickname ?? $discordUser->name, 'discord_avatar' => $discordUser->avatar, 'password' => bcrypt(Str::random(40)), ]); } } Auth::login($user, true); return redirect()->route('home.index'); } }