AWS Cognito 用户池注册 "Unknown error, the response body from fetch is: undefined"
AWS Cognito user pool signup "Unknown error, the response body from fetch is: undefined"
当用户注册时,添加了用户但是脚本 returns 出错 object: {code: "UnknownError", message: "Unknown error, the response body from fetch is: undefined"}
我遵循了 的建议。
但是问题并没有解决
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;
m.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 = "example@mail.com";
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
的请求中,header X-Amz-User-Agent: aws-amplify/0.1.x js
已通过,但我没有使用 Amplify。可能是我的环境设置问题?
很高兴看到你的想法。
节点上没有提取。您需要使用 polyfill 来获取,例如node-fetch
import fetch from 'node-fetch'
global.fetch = global.fetch || fetch
但请记住,amplify 不是为在节点上工作而设计的,因此也可能存在其他问题。
在 cognitoUser 解决我的问题之前添加 var:
var cognitoUser = result.user;
当用户注册时,添加了用户但是脚本 returns 出错 object: {code: "UnknownError", message: "Unknown error, the response body from fetch is: undefined"}
我遵循了
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;
m.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 = "example@mail.com";
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
的请求中,header X-Amz-User-Agent: aws-amplify/0.1.x js
已通过,但我没有使用 Amplify。可能是我的环境设置问题?
很高兴看到你的想法。
节点上没有提取。您需要使用 polyfill 来获取,例如node-fetch
import fetch from 'node-fetch'
global.fetch = global.fetch || fetch
但请记住,amplify 不是为在节点上工作而设计的,因此也可能存在其他问题。
在 cognitoUser 解决我的问题之前添加 var:
var cognitoUser = result.user;