Auth :: guest()在转到另一个路由或重定向后返回false

时间:2015-12-26 12:29:19

标签: php authentication laravel-5

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

require('core-js/fn/array/from');

// Then, from within any module:
Array.from(new Set([1, 2, 3, 2, 1])); // => [1, 2, 3]

登录后,我在标题中收到一个导航栏,其中包含登出选项,在我的内容中,放置了以下代码:

...
@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
...

after I log in

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

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,您应该添加与您点击的链接相关的路线

@RequestMapping(value = "/viewSpecificTests", method = RequestMethod.POST)
public String viewSpecificTests(Model model, @Valid XXX xxx, BindingResult result) {

    if (result.hasErrors()) {
        return "createSpecificTest";
    }

    xxxService.createTable(xxx);
    return "viewSpecificTests";
}

块。 因此,如果您的链接处理产品,您的路径文件应如下所示:

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

我希望这会帮助你。