Laravel 5.2 auth功能不起作用

时间:2016-03-21 12:47:56

标签: php laravel

我在之前的项目中使用了laravel 5.1并且我没有遇到任何问题,但现在我安装了Laravel 5.2并且我遇到了auth功能问题 所以我使用以下路线

table {
  margin-left: auto;
  margin-right: auto;
  width:96%;
}
.right-slider {
  float: right;
  margin: 33 98 0 0;
  position: relative;
  width:4%;
}

我可以看到我的身份验证表单,但是当我将表单发送到邮件路由Route::group(['middleware' => ['web']], function () { Route::controllers([ "auth" => "Auth\AuthController", "password" => "Auth\PasswordController" ]) ; }); 时,会话未设置,因此我获得了重定向,但是当我检查我是否登录时{{ 1}}我得到/auth/login

2 个答案:

答案 0 :(得分:2)

简单地使用此Route::auth();

答案 1 :(得分:2)

不仅认证路由需要使用web中间件组;所有需要它提供的功能的路线也需要使用它。

例如

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

Route::get('example-1', function () {
    dd(Auth::check()); // always will return false
});

Route::group(['middleware' => ['web']], function () {
    Route::get('example-2', function () {
        dd(Auth::check()); // works
    });
});

Web中间件组只是为您收集并运行大量中间件。

'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,
],

您会注意到上面的StartSession::class。这意味着对于您希望会话数据可用的每个请求(对于Auth等),您需要运行此中间件。

使用web组,或在您想要的路由/路由组上显式调用该中间件。