Uncaught: TypeError: AWS.CognitoIdentityCredentials не является конструктором - PullRequest
0 голосов
/ 27 мая 2018

У меня проблема с пользовательской сборкой AWS-SDK.Может быть, это просто глупая проблема, потому что я не вижу дерево в лесу, но это сводит меня с ума.Итак, мы получили.

Я построил на основе базовой версии 2.247.1 SDK со всеми сервисами Cognito и DynamoDB, как Amazon сообщает нам здесь .

Тогда я«Я попытался сделать это в моем коде следующим образом:

const AWS = require('../../../../assets/scripts/aws-sdk-2.247.1.js');

Далее я следовал примеру реализации, который AWS показывает нам здесь .

Итак, я подошелс этим кодом, чтобы получить сеанс для уже вошедшего в систему пользователя:

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 не является конструктором

Если я использую тот же код с полным javascriptSDK, кстати, безумно огромный, все работает отлично.

Надеюсь, некоторые из вас могут мне помочь.Я попробовал несколько разных методов импорта, таких как import * как AWS и так далее.Ничего не сработало.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Я понял.Сначала импортируйте библиотеку в скрипт tg в index.html.Затем добавьте в файл ts следующее:

declare var AWS: any

После этого можно использовать его как AWS.config и AWS.CognitoIdentityCredentials в приложении Angular 5.

0 голосов
/ 28 мая 2018

Вам придется заменить AWS.config.credentials = new AWS.CognitoIdentityCredentials({ на AWS.AWS.config.credentials = new AWS.AWS.CognitoIdentityCredentials({ согласно определению объекта в aws-sdk.js

...