28 de noviembre
Vaya que me tomé un tiempo para continuar!
Pero al mal paso darle prisa.
Teniamos pendiente para este post:
- actualizaremos este formulario de login
- crearemos un formulario de registro
- tambien comprobaremos el envio de email al crear una cuenta
Actualizar el formulario de Login
De momento el formulario no hace nada, asi que vamos a darle un poco de vida
Debemos setear lo snombre de variable para nuestros campos de email y password, quedaría como algo así:
<form method="POST" action="{{route('login')}}">
@csrf
{{-- <img class="mb-4" src="https://getbootstrap.com/docs/5.3/assets/brand/bootstrap-logo.svg" alt="" width="72" height="57"> --}}
<h1 class="h3 mb-3 fw-normal">Iniciar Sesion</h1>
<div class="form-floating">
<input type="email" class="form-control" id="floatingInput" placeholder="name@example.com" value="{{old('email')}}" name="email">
<label for="floatingInput">Email address</label>
</div>
<div class="form-floating">
<input type="password" class="form-control" id="floatingPassword" placeholder="Password" name="password">
<label for="floatingPassword">Password</label>
</div>
<div class="checkbox mb-3">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<button class="w-100 btn btn-lg btn-primary" type="submit">Sign in</button>
<p class="mt-5 mb-3 text-muted">© 2017–2022</p>
</form>
Luego a nuestro archivo de rutas le agregamos algunas rutas más
<?php
use App\Http\Controllers\Auth\LoginController;
Route::get('/login', [LoginController::class, 'create'])
->middleware(['guest:'.config('fortify.guard')])
->name('login');
Route::post('/login', [LoginController::class, 'store'])
->middleware(
array_filter(
[
'guest:'.config('fortify.guard'),
$limiter ? 'throttle:'.$limiter : null,
]
)
);
Route::post('/logout', [LoginController::class, 'destroy'])
->name('logout');
Route::get('/home',function(){
echo 'Hola esto es home';
echo "<form method='post' action='".route('logout')."'><input type='submit' value='Salir'>".csrf_field() ."</form>";
});
con esto tendremos las rutas para login, logout y un formulario para probar el logout
También debemos crear nuestro LoginController dentro de la carpeta Auth, esto para el caso que quisiéramos reemplazar o aumentar la lógica dentro del login y logout que ya maneja Fortify por nosotros.
<?php
namespace App\Http\Controllers\Auth;
use Laravel\Fortify\Http\Controllers\AuthenticatedSessionController;
use Laravel\Fortify\Http\Requests\LoginRequest;
use Illuminate\Http\Request;
use Laravel\Fortify\Contracts\LoginViewResponse;
use Laravel\Fortify\Contracts\LogoutResponse;
class LoginController extends AuthenticatedSessionController{
public function store(LoginRequest $request){
// dd($request);
return parent::store($request);
// $this->store($request);
}
/**
* Show the login view.
*
* @param \Illuminate\Http\Request $request
* @return \Laravel\Fortify\Contracts\LoginViewResponse
*/
public function create(Request $request): LoginViewResponse
{
return parent::create($request);
}
/**
* Destroy an authenticated session.
*
* @param \Illuminate\Http\Request $request
* @return \Laravel\Fortify\Contracts\LogoutResponse
*/
public function destroy(Request $request): LogoutResponse
{
return parent::destroy($request);
}
}
Por ahora entonces tenemos funcionando el formulario de login, que luego de proceder correctamente nos muestra nuestro Home provisional
Para la siguiente entrada veremos si podemos implementar:
- Un formulario de registro
- Tambien comprobaremos el envio de email al crear una cuenta para la confirmación