AWS Cognito可以实现吗?此外,我想添加一个"关系"在DynamoDB中的用户和实体之间。
任何人都遇到过这种情况 - 或者我使用的是AWS的错误服务?
答案 0 :(得分:3)
对于发现此问题的任何其他人,现在可以使用Cognito用户池进行此操作。有关详细信息,请here。
答案 1 :(得分:3)
如果有人需要Java SDK的实际代码,这里有一个在后端进行身份验证的示例:
state[id] = localState;
辅助功能:
Map<String, String> params = new HashMap<>();
params.put("USERNAME", userId);
params.put("SECRET_HASH", calculateSecretHash(userId));
params.put("PASSWORD", rawPassword);
AdminInitiateAuthRequest request = new AdminInitiateAuthRequest()
.withUserPoolId("YOUR_USER_POOL_ID")
.withClientId("YOUR_USER_POOL_APP_CLIENT_ID")
.withAuthFlow(AuthFlowType.ADMIN_NO_SRP_AUTH)
.withAuthParameters(params);
AWSCognitoIdentityProvider identityProvider = AWSCognitoIdentityProviderClientBuilder.standard()
.withCredentials(credentialsProvider)
.withRegion(Regions.US_WEST_2)
.build();
AdminInitiateAuthResult result = identityProvider.adminInitiateAuth(request);
答案 2 :(得分:-1)
Cognito并不意味着存储用户的凭据信息,因此可以使用userid作为密钥使用它,如果您想卸载登录过程,最好使用Facebook或者喜欢。
关于关系,dynamo是一个键/值数据存储区,如果您的交易需要按键进行几次检索,例如会话信息,设置,购物车信息,它们的效果最佳。它不会适用于查找所有朋友,我朋友访问过的所有地方等查询,因此您可以考虑使用graphdb,同时也可以使用reqular RDBMS轻松处理合理数量的数据。