SocialiteController.php 809 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\DiscordUser;
  5. use Illuminate\Support\Facades\Auth;
  6. use Laravel\Socialite\Facades\Socialite;
  7. class SocialiteController extends Controller
  8. {
  9. public function redirect()
  10. {
  11. return Socialite::driver('discord')->redirect();
  12. }
  13. public function callback()
  14. {
  15. if (Auth::guest()) return abort(500);
  16. $discord = Socialite::driver('discord')->user();
  17. $discordUser = DiscordUser::find($discord->id);
  18. if (is_null($discordUser)) DiscordUser::create(array_merge($discord->user, ['user_id' => Auth::user()->id]));
  19. else $discordUser->update($discord->user);
  20. return redirect()->route('profile.index')->with('success', 'Discord account linked!');
  21. }
  22. }