feat: add Discord facade
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Facades\Discord;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\User;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
@@ -41,21 +42,36 @@ class DiscordController extends Controller
|
||||
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()
|
||||
]);
|
||||
$appUser = User::where('email', $discordUser->getEmail())->first();
|
||||
|
||||
Auth::login(User::where('email', $discordUser->getEmail())->first());
|
||||
if ($appUser) {
|
||||
|
||||
$appUser->discord_token = $discordUser->token;
|
||||
$appUser->discord_refresh_token = $discordUser->refreshToken;
|
||||
$appUser->discord_user_id = $discordUser->getId();
|
||||
$appUser->discord_pfp = $discordUser->getAvatar();
|
||||
$appUser->save();
|
||||
|
||||
Auth::login($appUser, true);
|
||||
|
||||
} else {
|
||||
|
||||
$oAuthUser = User::create([
|
||||
'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(),
|
||||
'registrationIp' => request()->ip(),
|
||||
'discord_user_id' => $discordUser->getId(),
|
||||
'discord_pfp' => $discordUser->getAvatar(),
|
||||
'discord_token' => $discordUser->token,
|
||||
'discord_refresh_token' => $discordUser->refreshToken
|
||||
]);
|
||||
|
||||
Auth::login($oAuthUser, true);
|
||||
}
|
||||
|
||||
return redirect()
|
||||
->route('dashboard');
|
||||
|
Reference in New Issue
Block a user