Problema al logearse
Publicado por Álvaro (22 intervenciones) el 28/02/2020 01:39:02
Buenas. Continuo con el proyecto en Laravel, y ya he conseguido que el inicio de sesión me funcione, pero el problema viene tras un usuario logearse. El caso es que, una vez que el usuario inicie sesión, redirigo al perfil donde se muestra el nombre del usuario en la barra de navegación junto a la opción de cerrar sesión, al igual que en el body, pero esto último como mera prueba. Cuando intento dirigirme a alguna de las otras secciones de la pagina, el nombre de usuario desaparece de la barra, y me vuelven a aparecer las opciones de registro y login.

Por ejemplo, al querer iniciar sesión con el usuario Néstor, se retorna de manera correcta la vista del perfil.

Y se me muestran las opciones.

Pero cuando me dirigo a la página de inicio, me aparece la barra de navegación que le aparecería a un usuario que no se encuentra logeado, y no entiendo por qué.
A continuación cito el código que se encarga de logear al usuario:
Aquí el código de la vista del perfil, encargado de mostrar el nombre de usuario junto al botón de cerrar sesión:
Y a continuación el código de la barra de navegación, donde condiciono las situaciones en las que deben mostrarse tanto las opciones de registro y login como el nombre de usuario junto a su menú de opciones.
Adjunto también las rutas, por si se encontrara el fallo en éstas:
Agradezco cualquier tipo de ayuda.
Muchas gracias, y un saludo

Por ejemplo, al querer iniciar sesión con el usuario Néstor, se retorna de manera correcta la vista del perfil.

Y se me muestran las opciones.

Pero cuando me dirigo a la página de inicio, me aparece la barra de navegación que le aparecería a un usuario que no se encuentra logeado, y no entiendo por qué.
A continuación cito el código que se encarga de logear al usuario:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public function checkLogin()
{
request()->validate([
"email" => "required|email",
"password" => "required"
]);
$user_data = [
"email" => request("email"),
"password" => request("password")
];
if (Auth::attempt($user_data)) {
return view("users.profile");
} else {
return back()->with("error", "Ha ocurrido un error al iniciar sesión");
}
}
Aquí el código de la vista del perfil, encargado de mostrar el nombre de usuario junto al botón de cerrar sesión:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@include("partials.navbar")
@if(Auth::user()->email)
<div class="alert alert-danger success-block">
<strong>
Bienvenido {{ Auth::user()->username }}
</strong>
<br>
<form action="{{ route("logout") }}">
<button type="submit" class="btn btn-outline-secondary">Cerrar sesión</button>
</form>
</div>
@endif
Y a continuación el código de la barra de navegación, donde condiciono las situaciones en las que deben mostrarse tanto las opciones de registro y login como el nombre de usuario junto a su menú de opciones.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<li class="nav-item">
<a href="{{ route("homepage") }}" class="nav-link">Inicio</a>
</li>
<li class="nav-item">
<a href="{{ route("books.list") }}" class="nav-link">Libros</a>
</li>
@auth()
<li class="nav-item dropdown ml-5">
<a class="nav-link dropdown-toggle" href="#" id="navbardrop" data-toggle="dropdown">
{{auth()->user()->username}}
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="{{ route("users.profile") }}">Perfil</a>
<a class="dropdown-item" href="{{ route("logout") }}">Cerrar sesión</a>
</div>
</li>
@endauth
</ul>
@guest()
<ul class="navbar-nav">
<li class="nav-item">
<a href="{{ route("users.showLogin") }}" class="nav-link">Login</a>
</li>
<li class="nav-item">
<a href="{{ route("users.registry") }}" class="nav-link" style="margin-left: 5px">Registro</a>
</li>
</ul>
@endguest
</div>
Adjunto también las rutas, por si se encontrara el fallo en éstas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Route::views
Route::view("/inicio", "homepage")->name("homepage");
Route::view("/libros", "books.listBooks")->name("books.list");
Route::view("/login", "users.login")->name("users.showLogin");
Route::view("/registro", "users.registry")->name("users.registry");
Route::view("/perfil", "users.profile")->name("users.profile");
//Route::post
Route::post("/signIn", "UsersController@register")->name("users.register");
Route::post("/usersLogin", "UsersController@checkLogin")->name("users.login");
//Route::get
Route::get("/logout", "UsersController@logout")->name("logout");
Agradezco cualquier tipo de ayuda.
Muchas gracias, y un saludo
Valora esta pregunta


0