【问题标题】:Auth::guest() returns false after going to another route or redirectingAuth::guest() 在转到另一条路线或重定向后返回 false
【发布时间】:2015-12-26 12:29:18
【问题描述】:

我通过“php artisan make:auth”命令创建了一个具有自动生成的身份验证管理的 Laravel 应用程序,该命令创建了所有(至少我认为)需要的东西。
下面是模板 app.blade.php 的摘录,它说明了页面的标题:

...
@if (Auth::guest())
     <li><a href="login">Login</a></li>
     <li><a href="register">Register</a></li>
@else
     <li class="dropdown">
     <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
     {{ Auth::user()->name }} <span class="caret"></span>
     </a>

     <ul class="dropdown-menu" role="menu">
           <li><a href="logout"><i class="fa fa-btn fa-sign-out"></i>Logout</a></li>
     </ul>
@endif
...

登录后,我在标题中收到一个导航栏,带有注销选项,在我的内容中,放置了以下代码:

@extends('app')

@section('content')
<div class="container spark-screen">
<div class="row">
    <div class="col-md-10 col-md-offset-1">

                Hello in game! <br>
                @if(Auth::check())
                        {{ link_to_route('boot') }}
                @endif
    </div>
</div>
</div>
@endsection

换句话说,我有一个指向“启动”页面的链接。一切运行正常,除了当我点击链接时,我的标题停止显示注销选项,但是登录和注册选项,这是错误的,因为我还没有注销。
在我看来,好像 Laravel 会话只是为 1 个请求创建的。你知道有什么问题吗?当我遇到这个问题时,这不是唯一的例子。在我重定向到另一个页面后,它会出现同样的问题。

【问题讨论】:

    标签: php authentication laravel-5


    【解决方案1】:

    我有同样的问题,你应该添加与你点击的链接相关的路线

    Route::group(['middleware' => 'web'], function () { }); 
    

    块。 所以如果你的链接是处理产品的,你的路由文件应该是这样的:

    Route::group(['middleware' => 'web'], function () {
    Route::auth();
    Route::resource('products', 'ProductController');
    }); 
    

    希望对你有所帮助。

    【讨论】:

    • 我也有同样的问题。我在你的解决方案中做了这个,但它仍然不起作用。
    猜你喜欢
    • 2017-06-25
    • 2019-08-20
    • 1970-01-01
    • 2016-06-08
    • 2018-12-18
    • 2016-11-08
    • 2023-01-18
    • 2016-05-28
    • 1970-01-01
    相关资源
    最近更新 更多