go - 当用户已确认时,Cognito 抛出 ErrCodeNotAuthorizedException

标签 go amazon-cognito

为什么在向 Cognito 请求确认用户时,当用户状态已确认时,Cognito 会抛出 ErrCodeNotAuthorizedException "NotAuthorizedException" 。 文档指定当用户未经授权时抛出 ErrCodeNotAuthorizedException

https://docs.aws.amazon.com/sdk-for-go/api/service/cognitoidentityprovider/#CognitoIdentityProvider.ConfirmSignUp

我们应该如何处理这种情况?因为不清楚我们是否使用无效的客户端 key 发出请求,因为它会抛出相同的错误。

最佳答案

由于未经授权的案例和用户已确认的案例的代码相同,区分案例的唯一可能方法是匹配 awsErr.Message(),它提供了清晰的描述错误。

if awsErr, ok := err.(awserr.Error); ok {
    switch awsErr.Code() {
      case cognitoidentityprovider.ErrCodeNotAuthorizedException:
        if awsErr.Message() == "User cannot be confirm. Current status is CONFIRMED" {
            log.Println("Handle user already confirmed")
        } else {
            log.Println("Handle not authorized case")
        }
      ...
      default:          
    }
}

关于go - 当用户已确认时,Cognito 抛出 ErrCodeNotAuthorizedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57588197/

相关文章:

GoLang 约定 - 从 slice 创建自定义类型

go - 无法打开应该位于基本路径中的文件

android - 联合身份和修改用户属性

security - Cognito - Cognito 会自动在本地存储 token 吗?

ios - 亚马逊 Cognito iOS

android - 使用 Android SDK 的 Cognito "redirect URL"

go - 无法从 GO 中的其他文件导入包

包含结构的 golang 类型数组

http - 转到 : add logging to each router

amazon-web-services - 重定向到 AWS Cognito 用户池的内置登录页面