Регистрация пула пользователей AWS Cognito Неизвестная ошибка, текст ответа от fetch: undefined

Когда пользователь зарегистрирован, пользователь добавляется, но скрипт возвращает объект ошибки: {code: "UnknownError", message: "Неизвестная ошибка, тело ответа от fetch: undefined"}

Я следовал рекомендациям https://stackoverflow.com/a/52033216/8111346. Но проблема не решена.

index.html

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script src="dist/ww.js"></script>
<script>
  var global = global || window;
  var Buffer = Buffer || [];
  var process = process || {
      env: { DEBUG: undefined },
      version: []
    };
  var w = window.w();
  global.window = {w};
  global.navigator = () => null;
</script>
<script src="./dist/m.js"></script>
</body>
</html>

ww.js

const WindowMock = require('window-mock');
  import fetch from 'node-fetch'
  global.fetch = global.fetch || fetch
  function w(){
    return WindowMock.localStorage;
  }
  window.w = w;

м.js

import { CognitoUserPool, CognitoUserAttribute } from 'amazon-cognito-identity-js';

var poolData = { UserPoolId : "us-west-2_someData",
  ClientId : "someData"
};
var userPool = new CognitoUserPool(poolData);
var userName = "[email protected]";
var attributeList = [];

var dataEmail = {
  Name : 'email',
  Value : userName
};

var attributeEmail = new CognitoUserAttribute(dataEmail);


attributeList.push(attributeEmail);


userPool.signUp(userName, 'password', attributeList, null, function(err, result){
  if (err) {
    console.log(err);
    return;
  }
  cognitoUser = result.user;
  console.log('user name is ' + cognitoUser.getUsername());
});

webpack.config.js

const path = require('path');
module.exports = {
  entry: ["./module.js"],
    mode: 'development',
  output: {
    path: path.resolve(__dirname + '/dist'),
    filename: 'm.js'
  },
  module: {
    rules: [
      {
        test: /\.json$/,
        loader: 'json-loader'
      }
    ]
  },
     watch : true
};

В запросе к cognito-idp.us-west-2.amazonaws.com передается заголовок X-Amz-User-Agent: aws-amplify/0.1.x js, но я не использую Amplify. Может быть, это связано с настройками моего окружения?

Мне приятно читать ваши мысли.


person kolserdav    schedule 09.10.2018    source источник
comment
где ты его запускаешь? на узле?   -  person Aldarund    schedule 13.10.2018
comment
Да, на NodeJs, и нужно использовать Webpack. Этот файл webpack.config.js я добавил выше.   -  person kolserdav    schedule 15.10.2018
comment
То есть нет, он запускается на клиентском Javascript   -  person kolserdav    schedule 15.10.2018


Ответы (2)


На узле нет выборки. Вам нужно использовать полифилл для выборки, например. выборка узла

import fetch from 'node-fetch'
global.fetch = global.fetch || fetch

Но имейте в виду, что amplify не предназначен для работы на узле, поэтому могут быть и другие проблемы.

person Aldarund    schedule 15.10.2018
comment
Спасибо за ответ. Я добавил ваши строчки в файл ww.js, скомпилированный после Webpack, но все осталось без изменений. Я сделал что-то неправильно? - person kolserdav; 16.10.2018
comment
@kolserdav, вам нужно добавить его в файлы, которые работают на узле. например m.js - person Aldarund; 16.10.2018
comment
Как я думал. Но ничего не изменилось, видимо причина ошибки в чем-то другом. - person kolserdav; 17.10.2018
comment
@kolserdav на самом деле я прокомментировал неправильно. m.js — это выход. Ввод - это module.js, поэтому вам нужно поместить его в module.js. - person Aldarund; 17.10.2018
comment
Я меняю в entry: ["./ww.js"] и добавляю в ww.js - person kolserdav; 18.10.2018

Добавление var до того, как cognitoUser решил мою проблему:

var cognitoUser = result.user;

person Asaf Shveki    schedule 10.12.2018