2016-01-28 54 views
1

我对laravel很新颖。我已经使用了CakePHP一两次,但不是这样。Laravel身份验证不会将我设置为已验证

目前我正在尝试制作身份验证系统。注册确实有效,登录也是如此。

当我登录时,我的视图得到显示。但是,当我试图通过使用auth中间件,以确保控制器的功能:

public function __construct() { 
    $this->middleware("auth"); 
} 

它使重定向我/,但是当它不存在,所有的工作?

此外,当我尝试做var_dump(Auth::check());在登录功能,它显示true,但是当我做在我的索引(如果我不断收到错误地重定向到),它显示false

这是我如何登录我的用户:

public function postLogin(LoginRequest $request) { 
    if ($this->auth->attempt($request->only("username", "password"))) { 
     return redirect("/me"); 
    } 

    return redirect("/")->withInput()->withErrors([ 
     "username" => "The credentials you entered did not match out system." 
    ]); 
} 

是因为在导致此代码中的错误吗?

在此先感谢。

编辑:我正在使用Laravel 5.2。并且按照要求:这里是路线。

Route::group(['middleware' => ['web']], function() { 
    Route::get('/', '[email protected]'); 
    Route::get('/me', '[email protected]'); 
}); 

Route::controller('/','Auth\AuthController'); 
+0

您是否启用了'Session'中间件?你使用什么会话驱动程序? – Pitchinnate

+0

@Pitchinnate''web'=> ['driver'=>'session','provider'=>'users',],'你是说这个? “会话”中间件包含在“web”组中吗? –

+0

@WesleyPeeters您使用的是Laravel版本?另请发布该控制器操作的路由定义。 – Bogdan

回答

2

你需要移动Route::controller定义成具有web中间件添加的路由组,否则会议将不为其启用和认证系统需要为了工作会议。所以它应该是这样的:

Route::group(['middleware' => ['web']], function() { 
    Route::get('/', '[email protected]'); 
    Route::get('/me', '[email protected]'); 

    Route::controller('/','Auth\AuthController'); 
});