Hi, I'm currently working on a task to migrate my corporate users from current AnA service to fusionauth.
Part of the initial stages is writing a script (I decided to go with node js) to check if any of the users to be migrated already exist in fusionauth but I ran into the issue detailed below. It's worth mentioning that I can't use any node library other than the core once for technical reasons, this includes not installing fusionauth API.
Node code snippet where the error raised:
const apiToken = '<REQUIRED_API_TOKEN>';
function checkUserByEmail() {
const options = {
hostname: '<OUR_DOMAIN>.fusionauth.io',
path: '/api/user/<USER_EMAIL>',
method: 'GET',
headers: {
"content-type": "application/json",
Authorization: apiToken,
}
}
const req = https.request(options, (res) => {
res.setEncoding('utf8');
process.stdout.write(`STATUS: ${res.statusCode}\n`);
process.stdout.write(`HEADERS: ${JSON.stringify(res.headers)}\n`);
res.on('data', (chunk) => {
process.stdout.write(`BODY: ${chunk}`);
});
res.on('end', () => {
process.stdout.write('Response ended!');
});
});
req.on('error', e => process.stdout.write(`${e.name}: ${e.message}`));
req.end();
.
.
.
}
The error I'm getting is:
STATUS: 400
HEADERS: {"date":"Tue, 12 Jul 2022 18:31:00 GMT","content-type":"application/json;charset=UTF-8","content-length":"310","connection":"close","cache-control":"no-store"}
BODY: {"fieldErrors":{"":[{"code":"[invalidJSON]","message":"Invalid JSON in the request body. The property was []. The error was [Possible conversion error]. The detailed exception was [No content to map due to end-of-input\n at [Source: (org.apache.catalina.connector.CoyoteInputStream); line: 1, column: 0]]."}]}}
Response ended!
Also, using curl would return the desired result:
'https://s5stratos-dev.fusionauth.io/api/user?email=<USER_EMAIL>'
will return:
{"user":{"active":true,"connectorId":"e3306678-a53a-4964-9040-1c96f36dda72","email":"USER_EMAIL","encryptionScheme":"salted-pbkdf2-hmac-sha256","id":"USER_ID","insertInstant":1657571797768,"lastLoginInstant":1657571797768,"lastUpdateInstant":1657571797768,"passwordChangeRequired":false,"passwordLastUpdateInstant":1657571797823,"tenantId":"SOME_ID","twoFactor":{},"usernameStatus":"ACTIVE","verified":true}}
I tried some other variations of the code above with no luck.
I hope I posted every thing needed and thanks in advance.