(我知道以下示例并不安全)
我有一个基本的身份验证系统,用户必须在其中输入其凭据。当输入的凭据正确时,我在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');
});
我的问题:
每当用户使用正确的凭据登录时,服务器都会返回“成功”作为响应,但始终将我引导回基本根目录('/')。这使我认为会话未设置。如何解决此错误?