Laravel 5.2 - 登录和用户会话

时间:2016-03-03 13:20:57

标签: php laravel-5.2

这似乎是一个非常非常基本的问题需要解决但我无法解决。上次我使用laravel就像8个月前一样,有一些东西现在没有用这个基本的Login-Auth东西。

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

ROUTE:

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

验证\ 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';
    }
}

当我与注册用户登录时,它会正确地向我显示用户,因为现在每个人都很完美。

但是,问题是在主菜单中我看不到用户名而不是“登录” - “注册”按钮。即使我单击其中一个按钮,也没有任何反应,视图不会改变也不会做任何事情。

我的主菜单标记:

    <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())......它不能正常工作,即使我登录,我也可以看到登录和注册按钮,当我点击它们时没有任何反应。我甚至无法退出。

  

修改

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

@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

1 个答案:

答案 0 :(得分:1)

您的Welcome路由也需要位于您的网络中间件中。对 laravel 5.2 的更改意味着仅在该网络中间件中调用/运行会话。

因此,如果{<1}}不在网络中间件中,您将无法登录。(Matt有关此更改的良好链接here

相关问题