未为此客户端启用AWS Cognito身份验证USER_PASSWORD_AUTH流

use*_*347 10 python amazon-web-services boto3 aws-cognito

我有一个带用户池的移动应用程序(用户名和密码).该应用程序适用于aws-amplify sdk.但是,想把代码移到Lambdas.所以,我使用Boto3编写了以下Lambda.

这是Lambda:

import boto3

def lambda_handler(event, context):
    client = boto3.client('cognito-idp')
    response = client.initiate_auth(
        ClientId='xxxxxxxxxxxxxx',
        AuthFlow='USER_PASSWORD_AUTH',
        AuthParameters={
            'USERNAME': 'xxxxxx',
            'PASSWORD': 'xxxxxx'
        }
    )
    return response
Run Code Online (Sandbox Code Playgroud)

尝试了admin_initiate_auth.

import boto3
def lambda_handler(event, context):
    client = boto3.client('cognito-idp')
    response = client.initiate_auth(
        UserPoolId='xxxxxxxxx',
        ClientId='xxxxxxxxxxxxxx',
        AuthFlow='USER_PASSWORD_AUTH',
        AuthParameters={
            'USERNAME': 'xxxxxx',
            'PASSWORD': 'xxxxxx'
        }
    )
    return response
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误.

调用InitiateAuth操作时发生错误(InvalidParameterException):此客户端未启用USER_PASSWORD_AUTH流:InvalidParameterException Traceback(最近一次调用最后一次):
文件"/var/task/lambda_function.py",第12行,在lambda_handler'PASSWORD'中: 'xxxxx'文件"/var/runtime/botocore/client.py",第317行,在_api_call中返回self._make_api_call(operation_name,kwargs)文件"/var/runtime/botocore/client.py",第615行,在_make_api_call中raise error_class(parsed_response,operation_name)InvalidParameterException:调用InitiateAuth操作时发生错误(InvalidParameterException):此客户端未启用USER_PASSWORD_AUTH流

有什么想法吗?

use*_*347 30

想通了.我有goto用户池 - >应用程序客户端 - >显示详细信息 - >为基于应用程序的身份验证启用用户名密码(非SRP)流程(USER_PASSWORD_AUTH).

修好了.

  • 也许这已经发生了变化。它现在位于您的用户池 ->(用户池) -> 常规设置 -> 应用程序客户端 -> 显示详细信息 -> 启用基于用户名密码的身份验证 (ALLOW_USER_PASSWORD_AUTH) 它不在应用程序集成 -> 应用程序客户端设置下 (3认同)

ped*_*dev 8

想通了 我已经转到用户池-> 应用程序客户端-> 显示详细信息-> 为管理员 API 启用用户名密码身份验证以进行身份​​验证 (ALLOW_ADMIN_USER_PASSWORD_AUTH)。