Php Laravel身份验证不会将我设置为已验证
我对拉威尔还很熟悉。我已经使用CakePHP一两次了,但不是这个 目前我正在尝试建立一个身份验证系统。注册有效,登录也有效 当我登录时,将显示我的视图。但当我尝试使用Php Laravel身份验证不会将我设置为已验证,php,laravel,Php,Laravel,我对拉威尔还很熟悉。我已经使用CakePHP一两次了,但不是这个 目前我正在尝试建立一个身份验证系统。注册有效,登录也有效 当我登录时,将显示我的视图。但当我尝试使用auth中间件保护控制器功能时: public function __construct() { $this->middleware("auth"); } 它不断地将我重定向到/,但当它不在那里时,一切正常吗 另外,当我尝试执行var_dump(Auth::check())时在登录函数中,它显示true,但当我在索引
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('/', 'UnloggedController@index');
Route::get('/me', 'MeController@index');
});
Route::controller('/','Auth\AuthController');
您需要将
Route::controller
定义移动到添加了web
中间件的路由组中,否则将无法为其启用会话,身份验证系统需要该会话才能工作。所以它应该是这样的:
Route::group(['middleware' => ['web']], function () {
Route::get('/', 'UnloggedController@index');
Route::get('/me', 'MeController@index');
Route::controller('/','Auth\AuthController');
});
您是否启用了
会话中间件?您使用的会话驱动程序是什么?@pitchen'web'=>['driver'=>'session','provider'=>'users',],
您的意思是什么?session
中间件包含在web
组中,对吗?@WesleyPeeters您使用的是什么Laravel版本?另外,请发布该控制器操作的路由定义。@WesleyPeeters您可以在.env文件中查看会话的管理方式。是的,我相信会话中间件默认包含在web组中。您的路线是否使用web
组?另外,为了确保将\uuu construct()
函数正确地放入控制器中?@WesleyPeeters移动路由::控制器('/','Auth\AuthController')将代码>定义添加到添加了web
中间件的路由组中,否则将无法为其启用会话,身份验证系统需要该会话才能工作。