'typeof'amazon-cognito-identity-js''类型的'config'属性不存在?
问题描述:
在我的Ionic3应用程序中,我想更新cognito config.region
和config.credentials
,但出现以下错误属性“config”在类型“typeof”上不存在amazon-cognito-identity-js“'?'typeof'amazon-cognito-identity-js''类型的'config'属性不存在?
AWSCognito.config.region = 'us-east-1';
AWSCognito.config.credentials = new AWSCognito.CognitoIdentityCredentials({
// This will be the Pool Id from your Cognito user pool.
IdentityPoolId: ConstantsValues.IdentityPoolId
});
答
你如何(应该)参考配置对象取决于你如何把亚马逊的代码。如果没有看到您正在使用的import
,require
或<script>
,那么很难说出什么是关闭的。
从Amazon's documentation上amazon-cognito-identity-js
:
注意,亚马逊AWS Cognito SDK为JavaScript只是瘦身 下来AWS的Javascript SDK版本的命名空间AWSCognito 而不是AWS。它仅引用Amazon Cognito Identity 服务。
我很习惯这样的方法,使用完整的SDK:
AWS.config.credentials.clearCachedId();
AWS.config.update({region: 'us-east-1'});
var cognitosync = new AWS.CognitoSync();
我也:
var AWS = require('aws-sdk');
然后你就可以通过AWS
命名空间做这样的事情熟悉这种方法使用amazon-cognito-identity-js
,因为如此:
import * as Cognito from 'amazon-cognito-identity-js';
其允许这种类型的访问:
return new Cognito.CognitoUser({
Username: this.toUsername(email),
Pool: this.props.appState.state.pool
});
getAuthTokenFromCognitoUserPool =(): Promise<Cognito.CognitoIdToken> => {
...
}
然而,使用上面的进口,没有Cognito.config
对象,只有一个AWS.config
对象。
我建议你尝试导入完整的SDK,如果你还没有,并通过AWS
命名空间。如果您使用脚本标记,这可能是这个样子:
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.133.0.min.js"></script>
如果你已经有一个这样的标签,你可能只需要改变AWSCognito.config
到AWS.config
。
希望这有助于;快乐的黑客!
答
只需将亚马逊sdk导入到您的服务中即可。
import * as AWS from "aws-sdk";
然后你可以设置一个区域。
AWS.config.region = 'us-east-1';