未设置已认证用户的会话

时间:2019-10-10 09:48:54

标签: php laravel security session

(我知道以下示例并不安全)

我有一个基本的身份验证系统,用户必须在其中输入其凭据。当输入的凭据正确时,我在laravel应用程序中设置了一个会话,这表明他可以对api执行经过身份验证的请求。我通过以下方式做到这一点:

 public function authenticate(Request $request){
    $data = array(
        'name' => $request->input('UserName'),
        'password' =>$request->input('Password'),
        'email' => 'test@test.ch'
    );

    If(Auth::attempt($data)){
        $request->session()->put('isAuthenticated',true);
        $request->session()->save();
        return "success";
    }
    return "wrong";
}

我的中间件,用于检查是否允许用户发出请求:

  public function handle($request, Closure $next){
    if(!empty($request->session()->get('isAuthenticated')) && $request->session()->get('isAuthenticated') === true){
        return $next($request);
    }
    return redirect('/');
}

我的路线:

Route::post('/login', 'UserController@authenticate'); 

Route::group(['middleware' =>['web','check_auth']], function (){
Route::get('/logs','LogController@getAllLogEntries');
Route::get('/logs/{id}','LogController@getLogEntryById');
});

我的问题:

每当用户使用正确的凭据登录时,服务器都会返回“成功”作为响应,但始终将我引导回基本根目录('/')。这使我认为会话未设置。如何解决此错误?

0 个答案:

没有答案