我很喜欢laravel。我已经使用了CakePHP一两次,但不是这个。
目前我正在尝试制作身份验证系统。注册确实有效,登录也是如此。
当我登录时,我的视图会显示出来。但是当我尝试使用auth
中间件保护控制器功能时:
public function __construct() {
$this->middleware("auth");
}
它会一直将我重定向到/
,但是当它不存在时,一切正常吗?
此外,当我尝试在登录功能中执行var_dump(Auth::check());
时,它会显示true
,但是当我在索引中执行此操作时(我继续错误地重定向到),它显示{{1 }}
这是我登录用户的方式:
false
是否因为代码中的错误导致了这个?
提前致谢。
编辑:我正在使用Laravel 5.2。并且还根据要求:这是路线。
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."
]);
}
答案 0 :(得分:2)
您需要将Route::controller
定义移动到添加了web
中间件的路由组中,否则将不会为其启用会话,并且身份验证系统需要会话才能工作。所以它应该是这样的:
Route::group(['middleware' => ['web']], function () {
Route::get('/', 'UnloggedController@index');
Route::get('/me', 'MeController@index');
Route::controller('/','Auth\AuthController');
});