63 lines
1.8 KiB
PHP
63 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace Modules\Auth\Components;
|
|
|
|
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
|
use Illuminate\Foundation\Auth\ThrottlesLogins;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Validation\ValidationException;
|
|
use Livewire\Attributes\Layout;
|
|
use Livewire\Component;
|
|
|
|
class LoginForm extends Component
|
|
{
|
|
|
|
use AuthenticatesUsers;
|
|
use ThrottlesLogins;
|
|
|
|
public string $email = '';
|
|
public string $password = '';
|
|
|
|
public function validateLogin(Request $request)
|
|
{
|
|
$this->validate([
|
|
'email' => 'required|max:255|string|email',
|
|
'password' => 'required|string',
|
|
]);
|
|
}
|
|
|
|
protected function credentials(Request $request)
|
|
{
|
|
return ['email' => $this->email, 'password' => $this->password];
|
|
}
|
|
|
|
protected function sendLoginResponse(Request $request)
|
|
{
|
|
return redirect()->intended('/');
|
|
}
|
|
|
|
public function submit()
|
|
{
|
|
return $this->login(request());
|
|
}
|
|
|
|
#[Layout('components.layouts.full')]
|
|
public function render(): string
|
|
{
|
|
return <<<'HTML'
|
|
<x-page::full heading="Login" title="Login">
|
|
<form wire:submit="submit">
|
|
<div class="grid gap-5">
|
|
<x-form::text name="email" wire:model="email" label="E-Mail-Adresse"></x-form::text>
|
|
<x-form::text name="password" wire:model="password" type="password" label="Passwort"></x-form::text>
|
|
<x-ui::button type="submit">Login</x-ui::button>
|
|
<div class="flex justify-center">
|
|
<a href="{{route('password.request')}}" class="text-gray-500 text-sm hover:text-gray-300">Passwort vergessen?</a>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</x-page::full>
|
|
HTML;
|
|
}
|
|
}
|