Cognito用户SRP身份验证

5
2个回答

1
请参考这个答案:AWS Cognito用户身份验证缺少必需的参数SRP_A 简而言之,SRP_A只是一个大整数值。
如果您正在进行客户端认证,则可以继续这条路线,或者如果您在Web应用程序中,则可以使用任何其他库进行OAuth。
如果您正在进行服务器端身份验证,则应改为使用admin-initiate-auth,在这种情况下,您将不再使用SRP,也无需处理计算挑战响应等问题。

-1

我曾经遇到一个类似的问题,与 "AdminInitiateAuth" 方法有关。通过在用户池中启用 ADMIN_NO_SRP_AUTH ,我成功解决了我的问题。进入用户池 > APPS > 显示详细信息 并勾选复选框 "启用面向服务器身份验证的登录 API (ADMIN_NO_SRP_AUTH)"即可。这样就可以使用 AuthFlowType.ADMIN_NO_SRP_AUTH 了。

// example from a java implementation... 
AdminInitiateAuthRequest request = new AdminInitiateAuthRequest();
request.withClientId(CLIENT_APP_ID); // clinet id assigned in the userpool
request.withUserPoolId(USER_POOL_ID); // the id of the user pool 
request.addAuthParametersEntry("USERNAME", userId);
request.addAuthParametersEntry("PASSWORD", pwd);
request.withAuthFlow(AuthFlowType.ADMIN_NO_SRP_AUTH); 
// HAVE TO ENABLE THIS WORKFLOW ON THE USER POOL!
// You may be able to just set the workflow to AuthFlowType.USER_SRP_AUTH if you don't use the AdminInitiateRequest

// initiate the auth request
AdminInitiateAuthResult result = identityUserPoolProviderClient.adminInitiateAuth(request);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接