Я занимаюсь разработкой веб-приложения. В моем приложении мне нужно авторизовать пользователя в системе AWS cognito. Я могу войти в систему успешно. Но единственная проблема состоит в том, что когда имя пользователя и пароль, предоставленные пользователем, недействительны, моя среда Laravel убивает приложение, возвращающее 500 внутренних кодов состояния сервера. Но я хочу сделать что-то еще, когда имя пользователя и пароль не действительны. Я попытался с помощью блока try catch, но это не переопределило ошибку. Пожалуйста, смотрите мой код ниже.
try{
$client = new CognitoIdentityProviderClient([
'version' => 'latest',
'region' => env('AWS_REGION', '')
'credentials' => [
'key' => env('AWS_IAM_KEY', ''),
'secret' => env('AWS_IAM_SECRET', '')
]
]);
$result = $client->adminInitiateAuth([
'AuthFlow' => 'ADMIN_NO_SRP_AUTH',
'ClientId' => COGNITO_APP_CLIENT_ID,
'UserPoolId' => COGNITO_USER_POOL_ID,
'AuthParameters' => [
'USERNAME' => $request->email,
'PASSWORD' => $request->password,
],
]);
//Error thrown here if the username and password are not valid.
//continue
}
catch(Exception $e)
{
//I want to do something here if the error is thrown because of the invalid credentials without killing the app by throwing 500 status code.
}
Как видно из приведенного выше кода, если учетные данные пользователя недействительны, SDK выдаст ошибку. Это убьет приложение, вернув 500 кодов состояния. Я не хочу останавливаться на достигнутом. Итак, я использовал блок try catch, чтобы перехватить ошибку и продолжить в коде. Но блок try catch также не перехватывает ошибку.
Это скриншот.
Итак, как я могу остановить AWS SDK от остановки приложения, выдающего код состояния 500?