+
+
+ Twitter
+
+
+
+ {{ __('Link your account with your Twitter account.') }}
+ {{ __('Last Updated:') }} {{ $updated_at ?? 'Never.' }} · {{ __('Last Verified:') }} {{ $verified_at ?? 'Never.' }}
+
+
+
+ @if (!isset($username))
+
+
+ Login with Twitter
+
+ @else
+
+
+
+
+
+ {{ $name }}
+
{{ '@'.$username }}
+
+
+
+
+
+ {{ __('Remove Association') }}
+
+
+ @endif
+
+
+
diff --git a/resources/views/member/show.blade.php b/resources/views/member/show.blade.php
index ead89ad00..66ac32381 100644
--- a/resources/views/member/show.blade.php
+++ b/resources/views/member/show.blade.php
@@ -110,6 +110,24 @@
@endif
+ @if($user->twitter)
+
+
Twitter
+
+
+
+
+
+
+
+ @endif
@if($user->gamejolt)
diff --git a/resources/views/profile/edit.blade.php b/resources/views/profile/edit.blade.php
index 03459dc73..4fe6937ac 100644
--- a/resources/views/profile/edit.blade.php
+++ b/resources/views/profile/edit.blade.php
@@ -28,6 +28,11 @@
@endif
+ @if(config("services.twitter.client_id") && config("services.twitter.client_secret"))
+ @livewire('profile.twitter-account')
+
+ @endif
+
@livewire('profile.preference')
diff --git a/routes/web.php b/routes/web.php
index 5f2d491e8..abd1ecab5 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -12,6 +12,7 @@
use App\Http\Controllers\PermissionController;
use App\Http\Controllers\Skin\ImportController;
use App\Http\Controllers\Auth\DiscordController;
+use App\Http\Controllers\Auth\TwitterController;
use App\Http\Controllers\Skin\SkinHomeController;
use App\Http\Controllers\Skin\PlayerSkinController;
use App\Http\Controllers\Skin\UploadedSkinController;
@@ -51,6 +52,8 @@
Route::group(['prefix' => 'login'], function () {
Route::get('/discord', [DiscordController::class, 'redirectToProvider'])->name('discord.login');
Route::get('/discord/callback', [DiscordController::class, 'handleProviderCallback']);
+ Route::get('/twitter', [TwitterController::class, 'redirectToProvider'])->name('twitter.login');
+ Route::get('/twitter/callback', [TwitterController::class, 'handleProviderCallback']);
});
Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {