如何在放大中捕获来自 aws cognito pre signup lambda 的错误?

Posted

技术标签:

【中文标题】如何在放大中捕获来自 aws cognito pre signup lambda 的错误?【英文标题】:How to catch an error coming from aws cognito pre signup lambda in amplify? 【发布时间】:2021-10-02 07:38:59 【问题描述】:

我在 cognito 中使用预注册 lambda 触发器。 某些情况下的 pre singup lambda 会引发异常(期望行为)。 前端有如下代码:

await Vue.prototype.$auth
          .federatedSignIn(
            provider: provider
          ).then((d) => 
            console.log('success ', d)
          ).catch((e) => 
            console.log('here is and error', e)
          )
      

当我运行代码时,我总是在 console.log 中看到成功消息(d 未定义),紧随其后我还看到以下消息: 我想知道如何捕获此错误,我想为我放大记录它,但我怎样才能捕获它?

下面附上我的放大配置:

import Amplify,  Auth  from 'aws-amplify'

export default 
  install (Vue) 
    Amplify.configure(
      Auth: 
        region: config.auth.region,
        userPoolId: config.auth.cognitoUserPoolId,
        userPoolWebClientId: config.auth.cognitoClientId,
        cookieStorage: 
          domain: config.auth.cognitoCookieStorageDomain,
          secure: config.auth.cognitoCookieStorageSecure
        ,
        mandatorySignIn: false,
        authenticationFlowType: 'USER_SRP_AUTH',
        oauth: 
          domain: config.auth.cognitoDomain,
          scope: ['email', 'openid', 'aws.cognito.signin.user.admin'],
          redirectSignIn: config.auth.cognitoSignInRedirectUrl,
          redirectSignOut: config.auth.cognitoSignOutRedirectUrl,
          responseType: 'code' // or 'token', note that REFRESH token will only be generated when the responseType is code
        
      
    )
    Vue.prototype.$auth = Auth
  

【问题讨论】:

您好,您解决了这个问题吗? 【参考方案1】:

您必须在 Pre-SignupTrigger(Lambda 函数)中处理此错误

假设您使用 amplify 生成了此设置 - 您可以在 Lambda 函数模板中本地执行此操作,您可以在文本编辑器中对其进行编辑。该函数的代码应位于amplify/backend/function/<functionname>

话虽如此,为了在默认 Amplify 实施之外更灵活地使用 Amazon Cognito,您可能需要考虑导入预先存在的 Amazon Cognito 用户池:https://docs.amplify.aws/cli/auth/import

【讨论】:

以上是关于如何在放大中捕获来自 aws cognito pre signup lambda 的错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何安全地使用 AWS 放大

具有授权的 AWS Cognito 用户(如何从应用程序将用户添加到用户组?)

忘记了来自 aws cognito 的密码链接

如何缓存来自 cognito 的 ID 令牌,以便后续访问 API 网关?

如何使用 AWS Cognito AmplifyAuthenticator 设置可选 MFA?

如何在 AWS Cognito 中实施组限制访问