javascript - AWS Cognito 身份验证因 Vanilla JS 失败
问题描述
我正在尝试使用 AWS Cognito 对用户进行身份验证,并使用 Vanilla JS 从 AWS 获取令牌。
在他们的文档中,他们有这个例子。问题是,当我遵循它时,我得到以下错误
ErrorValidationException: 3 validation errors detected: Value 'value' at 'accountId' failed to satisfy constraint: Member must have length less than or equal to 15; Value 'value' at 'accountId' failed to satisfy constraint: Member must satisfy regular expression pattern: \d+; Value 'value' at 'identityPoolId' failed to satisfy constraint: Member must satisfy regular expression pattern: [\w-]+:[0-9a-f-]+
对于这些变量
var IDENTITY_POOL_ID = "value";
var ACCOUNT_ID = "value";
var REGION = "value";
我使用了 AWS 为我生成的数据(我不想在此处显示它们)。
我只是对为什么这不起作用感到困惑,因为这是他们文档中的一个非常简单的示例,并且它使用的是由 AWS 生成的数据
解决方案
我终于成功了
这是验证用户的正确配置
首先你需要加载这些库
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.3.5.js"></script>
<script src="https://rawgit.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js"></script>
<script src="https://rawgit.com/aws/amazon-cognito-identity-js/master/dist/amazon-cognito-identity.min.js"></script>
然后只需将此配置与您的数据一起添加
var authenticationData = {
Username: username,
Password: password,
};
var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(
authenticationData
);
var poolData = {
UserPoolId: "user_pool_id",
ClientId: "client_id",
};
var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
var userData = {
Username: username,
Pool: userPool,
};
var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
var accessToken = result.getAccessToken().getJwtToken();
/* Use the idToken for Logins Map when Federating User Pools with identity pools or when passing through an Authorization Header to an API Gateway Authorizer */
var idToken = result.idToken.jwtToken;
},
onFailure: function (err) {
alert(err);
},
});
推荐阅读
- typescript - 超级调用后的类变量默认值?
- php - Laravel 多级认证
- java - 我有一个数组列表,它的大小是 1,但是当我到达索引 0 时,我得到 = java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
- opencv - 匹配两组不同坐标中的单个点
- javascript - 如何将输入中的值插入到数组中?
- c++ - 最小化 C++ 中的内存使用
- sql - Sql Query /根据日期和ID计算值的排名
- python - 识别图像中的网格并使用图像处理更改其颜色
- vue.js - 如何在Vue中将搜索字段中的第一个字母设为大写
- javascript - 谷歌工作箱的离线后备