. */ namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Str; use Laravel\Socialite\Facades\Socialite; class DiscordController extends Controller { public function discordRedirect() { return Socialite::driver('discord') ->scopes(['email', 'guilds.join', 'guilds.members.read', 'guilds']) ->redirect(); } public function discordCallback() { $discordUser = Socialite::driver('discord')->user(); $appUser = User::upsert([ 'uuid' => Str::uuid(), 'name' => $discordUser->getName(), 'email' => $discordUser->getEmail(), 'email_verified_at' => now(), // verify the account since it came from a trusted provider 'username' => $discordUser->getNickname(), 'currentIp' => \request()->ip(), 'discord_user_id' => $discordUser->getId(), 'discord_token' => $discordUser->token, 'discord_refresh_token' => $discordUser->refreshToken ], [ 'email' => $discordUser->getEmail() ]); Auth::login(User::where('email', $discordUser->getEmail())->first()); return redirect() ->route('dashboard'); } }