【问题标题】:How stop CognitoIdentityProviderException from returning 500 status code in AWS PHP sdk如何阻止 CognitoIdentityProviderException 在 AWS PHP sdk 中返回 500 状态代码
【发布时间】:2018-05-13 08:30:23
【问题描述】:

我正在开发一个 Web 应用程序。在我的应用程序中,我需要将用户登录到 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 状态代码?

【问题讨论】:

  • 你能链接CognitoIdentityProviderClient github吗?它是正确的 Laravel 提供者吗?我注意到另一个人的代码,they catch for CognitoIdentityProviderException
  • 我没有使用 Laravel AWS sdk。我正在使用纯 PHP aws sdk。

标签: php laravel amazon-web-services aws-sdk


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2015-08-14
    • 2017-03-18
    • 1970-01-01
    • 2019-01-15
    • 2021-04-25
    • 2014-10-26
    相关资源
    最近更新 更多