Compare commits

...

2 Commits

Author SHA1 Message Date
w33b bcd15d8569 Discord socialite: catch InvalidStateException 2026-06-15 21:14:35 +02:00
w33b 133a069890 Fix attempt to read property on null on playlist page 2026-06-15 20:51:07 +02:00
3 changed files with 21 additions and 2 deletions
@@ -10,6 +10,7 @@ use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use Laravel\Socialite\Facades\Socialite;
use Laravel\Socialite\Two\InvalidStateException;
class DiscordAuthController extends Controller
{
@@ -26,7 +27,12 @@ class DiscordAuthController extends Controller
*/
public function callback(): RedirectResponse
{
try {
$discordUser = Socialite::driver('discord')->user();
} catch (InvalidStateException $e) {
return redirect()->route('login')
->with('error', 'Your login session expired. Please try signing in again.');
}
$user = User::where('discord_id', $discordUser->id)->first();
+8
View File
@@ -28,6 +28,14 @@
</div>
</a>
@if (session('error'))
<div class="mb-4 rounded-md bg-red-200 p-4 border border-red-200">
<div class="text-sm text-red-700">
{{ session('error') }}
</div>
</div>
@endif
<!-- Or -->
<div class="grid grid-cols-3">
<hr class="self-center border-neutral-600">
@@ -15,8 +15,13 @@
</div>
<div class="flex flex-col justify-center pl-4">
<div class="flex justify-end">
<a href="{{ route('hentai.index', ['title' => $playlistEpisodes->first()->episode->slug, 'playlist' => $playlist->id]) }}"
@php $episode = $playlistEpisodes->first()?->episode; @endphp
@if(isset($episode))
<a href="{{ route('hentai.index', ['title' => $episode->slug, 'playlist' => $playlist->id]) }}"
class="cursor-pointer float-right text-white bg-rose-700 hover:bg-rose-800 focus:ring-4 focus:outline-none focus:ring-rose-300 font-medium rounded-lg text-sm px-4 py-2 dark:bg-rose-600 dark:hover:bg-rose-700 dark:focus:ring-rose-800">{{ __('playlist.play') }}</a>
@else
<a class="cursor-not-allowed float-right text-white bg-neutral-700 focus:ring-4 focus:outline-none focus:ring-neutral-300 font-medium rounded-lg text-sm px-4 py-2 dark:bg-neutral-600 dark:focus:ring-neutral-800">{{ __('playlist.play') }}</a>
@endif
</div>
</div>
</div>