Uncaught: TypeError: AWS.CognitoIdentityCredentials is not a constructor
Uncaught: TypeError: AWS.CognitoIdentityCredentials is not a constructor
我遇到了自定义构建 AWS-SDK 的问题。也许这只是我在森林中看不到一棵树的愚蠢问题,但这让我发疯。所以我们得到了。
我确实基于核心版本 2.247.1 构建了一个包含所有 Cognito 和 DynamoDB 服务的 sdk,就像亚马逊告诉我们的那样 here。
然后我尝试在我的代码中要求它如下:
const AWS = require('../../../../assets/scripts/aws-sdk-2.247.1.js');
此外,我还遵循了 AWS 向我们展示的示例实施 here。
所以我想出了这段代码来与已经登录的用户建立会话:
getUserSession(
response: ICognitoResponse,
callback: ( callbackResponse: ICognitoResponse ) => {} ) {
// Validate the Usersession
this.cognitoUser.getSession((err: any, session: any) => {
if (err) {
response = assign(response, { err });
callback( response );
return;
} else {
/**
* Set the right URL
* @type {string}
*/
const URL = 'cognito-idp.' +
environment.AWS_REGION +
'.amazonaws.com/' +
environment.USERPOOL_ID;
/**
* Update the Credentials with the current updated URL
* @type {AWS.CognitoIdentityCredentials}
*/
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
/**
* your identity pool id here
*/
IdentityPoolId: environment.USERPOOL_ID,
Logins: {
/**
* Change the key below according to the
* specific region your user pool is in.
*/
URL: session.getIdToken().getJwtToken(),
},
});
}
});
}
编译没有任何错误,我可以登录了。但在此之后,我收到以下错误:
Uncaught: TypeError: AWS.CognitoIdentityCredentials is not a constructor
如果我将相同的代码与完整的 javascript SDK 一起使用,顺便说一句,它非常庞大,一切正常。
希望你们中的一些人能帮助我。我确实尝试了几种不同的导入技术,例如 import * as AWS 等等。没有任何效果。
您必须根据 aws-sdk.js
中的对象定义将 AWS.config.credentials = new AWS.CognitoIdentityCredentials({
替换为 AWS.AWS.config.credentials = new AWS.AWS.CognitoIdentityCredentials({
我明白了。首先在 index.html 中的脚本 tg 中导入库。然后将以下内容添加到 ts-File:
declare var AWS: any
之后可以在 Angular 5 应用程序中将其用作 AWS.config 和 AWS.CognitoIdentityCredentials。
我遇到了自定义构建 AWS-SDK 的问题。也许这只是我在森林中看不到一棵树的愚蠢问题,但这让我发疯。所以我们得到了。
我确实基于核心版本 2.247.1 构建了一个包含所有 Cognito 和 DynamoDB 服务的 sdk,就像亚马逊告诉我们的那样 here。
然后我尝试在我的代码中要求它如下:
const AWS = require('../../../../assets/scripts/aws-sdk-2.247.1.js');
此外,我还遵循了 AWS 向我们展示的示例实施 here。
所以我想出了这段代码来与已经登录的用户建立会话:
getUserSession(
response: ICognitoResponse,
callback: ( callbackResponse: ICognitoResponse ) => {} ) {
// Validate the Usersession
this.cognitoUser.getSession((err: any, session: any) => {
if (err) {
response = assign(response, { err });
callback( response );
return;
} else {
/**
* Set the right URL
* @type {string}
*/
const URL = 'cognito-idp.' +
environment.AWS_REGION +
'.amazonaws.com/' +
environment.USERPOOL_ID;
/**
* Update the Credentials with the current updated URL
* @type {AWS.CognitoIdentityCredentials}
*/
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
/**
* your identity pool id here
*/
IdentityPoolId: environment.USERPOOL_ID,
Logins: {
/**
* Change the key below according to the
* specific region your user pool is in.
*/
URL: session.getIdToken().getJwtToken(),
},
});
}
});
}
编译没有任何错误,我可以登录了。但在此之后,我收到以下错误:
Uncaught: TypeError: AWS.CognitoIdentityCredentials is not a constructor
如果我将相同的代码与完整的 javascript SDK 一起使用,顺便说一句,它非常庞大,一切正常。
希望你们中的一些人能帮助我。我确实尝试了几种不同的导入技术,例如 import * as AWS 等等。没有任何效果。
您必须根据 aws-sdk.js
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
替换为 AWS.AWS.config.credentials = new AWS.AWS.CognitoIdentityCredentials({
我明白了。首先在 index.html 中的脚本 tg 中导入库。然后将以下内容添加到 ts-File:
declare var AWS: any
之后可以在 Angular 5 应用程序中将其用作 AWS.config 和 AWS.CognitoIdentityCredentials。