Laravel身份验证不会将我设置为已通过身份验证

时间:2016-01-28 15:57:49

标签: php laravel

我很喜欢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."
    ]);
}

1 个答案:

答案 0 :(得分:2)

您需要将Route::controller定义移动到添加了web中间件的路由组中,否则将不会为其启用会话,并且身份验证系统需要会话才能工作。所以它应该是这样的:

Route::group(['middleware' => ['web']], function () {
    Route::get('/', 'UnloggedController@index');
    Route::get('/me', 'MeController@index');

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