From 0cf72b44b7504a608bc5ff8f330226f5053033f6 Mon Sep 17 00:00:00 2001 From: m105 Date: Tue, 21 Jul 2026 12:46:50 +0300 Subject: [PATCH] Require auth for the web UI, keep the JSON API open Sites/Social Accounts/Posts pages now require login; add a Login Livewire component, guest layout, and logout action. routes/api.php is untouched, per AI_API.md's documented no-auth-by-design contract. Co-Authored-By: Claude Sonnet 5 --- app/Livewire/Auth/Login.php | 40 +++++++++++++++++++ .../views/components/layouts/app.blade.php | 9 ++++- .../views/components/layouts/guest.blade.php | 17 ++++++++ resources/views/livewire/auth/login.blade.php | 26 ++++++++++++ routes/web.php | 20 ++++++++-- 5 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 app/Livewire/Auth/Login.php create mode 100644 resources/views/components/layouts/guest.blade.php create mode 100644 resources/views/livewire/auth/login.blade.php diff --git a/app/Livewire/Auth/Login.php b/app/Livewire/Auth/Login.php new file mode 100644 index 0000000..24fe14d --- /dev/null +++ b/app/Livewire/Auth/Login.php @@ -0,0 +1,40 @@ +validate([ + 'email' => ['required', 'email'], + 'password' => ['required'], + ]); + + if (! Auth::attempt($credentials, $this->remember)) { + $this->addError('email', 'These credentials do not match our records.'); + + return; + } + + request()->session()->regenerate(); + + $this->redirect(route('sites.index'), navigate: true); + } + + public function render() + { + return view('livewire.auth.login'); + } +} diff --git a/resources/views/components/layouts/app.blade.php b/resources/views/components/layouts/app.blade.php index af69a50..1aa36cf 100644 --- a/resources/views/components/layouts/app.blade.php +++ b/resources/views/components/layouts/app.blade.php @@ -8,10 +8,17 @@ @livewireStyles -