如何停止CognitoIdentityProviderException在AWS PHP sdk中返回500个状态代码

如何停止CognitoIdentityProviderException在AWS PHP sdk中返回500个状态代码,php,laravel,amazon-web-services,aws-sdk,Php,Laravel,Amazon Web Services,Aws Sdk,我正在开发一个Web应用程序。在我的应用程序中,我需要将用户登录到AWS cognito系统。我可以成功登录到系统。但唯一的问题是,当用户提供的用户名和密码无效时,my Laravel框架将杀死返回500个内部服务器状态代码的应用程序。但是当用户名和密码无效时,我想做些别的事情。我尝试使用try-catch块,但它没有覆盖错误。请看下面我的代码 try{ $client = new CognitoIdentityProviderClient([

我正在开发一个Web应用程序。在我的应用程序中,我需要将用户登录到AWS cognito系统。我可以成功登录到系统。但唯一的问题是,当用户提供的用户名和密码无效时,my 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状态代码的应用程序呢?

最后,我找到了解决方案。Laravel使用名称空间。因此,我需要将“\”作为前缀,而不是在try-catch块中仅使用Exception。所以试捕变成这样

try{
   //code
}
catch(\Exception $e) //pay attention to the "\"
{
}

你能链接到
CognitoIdentityProviderClient
github吗?它是合适的拉维供应商吗?我注意到在另一个人代码中,我没有使用Laravel AWS sdk。我使用的是纯PHP aws sdk。