当前位置:  开发笔记 > 编程语言 > 正文

Laravel 5.2 Auth无法正常工作

如何解决《Laravel5.2Auth无法正常工作》经验,为你挑选了1个好方法。

你们知道Laravel 5.2几天前发布了.我正在尝试这个新版本.我在CLI上使用以下命令创建了一个新项目:

laravel new testapp

根据Authentication Quickstart的文档,我按照以下命令来构建身份验证的路由和视图:

php artisan make:auth

它工作正常.注册工作正常.但我在登录时遇到问题.登录后我在route.php文件中测试了以下内容:

   Route::get('/', function () {
    dd( Auth::user());
    return view('welcome');
});

Auth::user()是返回null,也Auth::check()Auth::guest()没有适当工作.我通过制作新项目一次又一次地尝试了两次,但无法得到正确的结果.

以下是完整的 route.php

     ['web']], function () {
    //
});

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

    Route::get('/home', 'HomeController@index');
});

谁能帮我?或是否有人面临同样的问题?我该如何解决?



1> Moppo..:

Laravel 5.2引入了中间件组概念:您可以指定一个或多个中间件属于一个组,并且可以将中间件组应用于一个或多个路由

默认情况下,Laravel 5.2定义了一个名为的组web,用于对中间件处理会话和其他http实用程序进行分组:

protected $middlewareGroups = [
'web' => [
    \App\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \App\Http\Middleware\VerifyCsrfToken::class,
],

因此,如果要进行会话处理,则应将此中间件组用于要使用身份验证的所有路由:

Route::group( [ 'middleware' => ['web'] ], function () 
{
    //this route will use the middleware of the 'web' group, so session and auth will work here         
    Route::get('/', function () {
        dd( Auth::user() );
    });       
});

LARAVEL VERSION的更新> = 5.2.27

从Laravel 5.2.27版本开始,定义的所有路由routes.php默认使用web中间件组.这在以下方面实现app/Providers/RouteServiceProvider.php:

protected function mapWebRoutes(Router $router)
{
    $router->group([
        'namespace' => $this->namespace, 'middleware' => 'web'
    ], function ($router) {
        require app_path('Http/routes.php');
    });
}

因此,您不再需要手动将web中间件组添加到路由中.

无论如何,如果要对路由使用默认身份验证,仍需要将auth中间件绑定到路由


这对我来说更有意义,在"你不需要'auth`中间件让Auth工作,你需要`web`中间件"的最初的心理障碍之后......
推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有