(я знаю, что следующий пример небезопасен)
У меня есть базовая система аутентификации, где пользователь должен ввести свои учетные данные. Когда введенные учетные данные верны, я установил в своем приложении 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');
});
Моя проблема:
Всякий раз, когда пользователь входит в систему с правильными учетными данными, сервер возвращает «success» в качестве ответа, но всегда направляет меня обратно к базовому корню ('/'). Это заставляет меня предположить, что сессия не установлена. Как я могу исправить эту ошибку?