Laravel 5.2 - 登录和用户会话

Laravel 5.2 - login and user session

这似乎是一个非常非常基本的问题,但我没能解决。上次我使用 laravel 大约是 8 个月前,有些东西现在无法使用这个基本的登录 - 验证东西。

我正在使用 laravel 5.2,这是我的登录信息:

路线:

Route::post('login', [
    'as' => 'post_login',
    'uses' => 'Auth\AuthController@login'
]);

Auth\AuthController.php:

public function login(Request $request)
{
    if(Auth::attempt([
        'email' => $request->get('email'), 
        'password' => $request->get('password'), 
        'active' => 1
        ])) 
    {

        $user = Auth::user();

        var_dump($user);

    }
    else 
    {
        return 'Could not log in';
    }
}

当我用注册用户登录时,它会正确显示用户,现在一切都很完美。

但是,问题是在主菜单中我看不到用户名,而是 "login" - "register" 按钮。即使我单击这些按钮之一,也没有任何反应,视图不会改变,也不会执行任何操作。

我的主菜单标记:

    <nav class="navbar navbar-default">
        <div class="container">
            <div class="navbar-header">

                <!-- Collapsed Hamburger -->
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse">
                    <span class="sr-only">Toggle Navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>

                <!-- Branding Image -->
                <a class="navbar-brand" href="{{ url('/') }}">
                    Fotopredio
                </a>
            </div>

            <div class="collapse navbar-collapse" id="app-navbar-collapse">
                <!-- Left Side Of Navbar -->
                <ul class="nav navbar-nav">
                    <li><a href="{{ url('/home') }}">Home</a></li>
                </ul>

                <!-- Right Side Of Navbar -->
                <ul class="nav navbar-nav navbar-right">
                    <!-- Authentication Links -->
                    @if (Auth::guest())
                        <li><a href="{{ route('login') }}">Login</a></li>
                        <li><a href="{{ route('registration') }}">Registro</a></li>
                    @else
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
                                {{ Auth::user()->email }} <span class="caret"></span>
                            </a>

                            <ul class="dropdown-menu" role="menu">
                                <li><a href="{{ url('/logout') }}"><i class="fa fa-btn fa-sign-out"></i>Logout</a></li>
                            </ul>
                        </li>
                    @endif
                </ul>
            </div>
        </div>
    </nav>

您可以看到 @if(Auth::guest()) ... 它不起作用,即使我登录时,我也可以看到登录和注册按钮,当我单击它们时没有任何反应。我什至无法退出。

EDIT

我的欢迎页面中有这个标记,用户登录后应该看到的页面。

@extends('layouts.app')
@section('title', 'Home')
@section('body')

<?php
if (Auth::check()) {
    echo "Loged In";
} else {
    echo "not loged in";
}
?>
<div class="container">
    <div class="row">
        <div class="col-md-10 col-md-offset-1">
            <div class="panel panel-default">
                <div class="panel-heading">Welcome</div>

                <div class="panel-body">
                    Your Application's Landing Page.
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

即使我登录后,它仍显示 NOT LOGED IN

您的 Welcome 路由也需要在您的网络 中间件 中。对 laravel 5.2 的更改意味着会话仅 called/run 在该网络 中间件 中。

因此,如果 Welcome 不在网络 中间件 中,您将无法登录。(Matt 对此有很好的 link改变 here)