adrema/modules/Auth/Components/LoginForm.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;
}
}