PHP - Problema al logearse

 
Vista:
Imágen de perfil de Álvaro
Val: 65
Ha disminuido su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

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.


login

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


Anotacion-2020-02-27-150714

Y se me muestran las opciones.


Anotacion-2020-02-27-150830

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder