mailwolt/app/Livewire/Auth/LoginForm.php

59 lines
1.3 KiB
PHP

<?php
namespace App\Livewire\Auth;
use Illuminate\Support\Facades\Auth;
use Livewire\Component;
class LoginForm extends Component
{
public ?array $banner = [];
public bool $showBanner = false;
public string $name = '';
public string $password = '';
public ?string $error = null;
public bool $show = false;
public function mount(): void
{
// Flash nur EINMAL ziehen
$flash = session()->pull('login_banner');
if ($flash) {
$this->banner = $flash;
$this->showBanner = true;
}
}
public function dismissBanner(): void
{
$this->showBanner = false;
}
public function login()
{
$this->resetErrorBag();
$this->error = null;
$this->validate([
'name' => 'required|string|min:2',
'password' => 'required|string|min:4',
]);
$field = filter_var($this->name, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
if (Auth::attempt([$field => $this->name, 'password' => $this->password], true)) {
request()->session()->regenerate();
return redirect()->intended(route('ui.dashboard'));
}
$this->error = 'Ungültige Zugangsdaten.';
}
public function render()
{
return view('livewire.auth.login-form');
}
}