@onereach/orest-input-cli
Version:
The tool for creating, serving, and publishing OREST Inputs
56 lines (47 loc) • 1.34 kB
JavaScript
const axios = require('axios');
const getFingerprint = require('./util/getFingerprint');
const multiUserSelect = require('./multiUserSelect');
function getToken({ sdkApiUrl, username, password, verificationCode }) {
const data = JSON.stringify({
username,
password,
fingerPrint: getFingerprint(),
verificationCode,
});
const config = {
method: 'post',
url: `${sdkApiUrl}/auth/token`,
headers: {
'Content-Type': 'application/json',
},
data: data,
};
return axios(config).then(async function (response) {
if (response.data.tokenType === 'multi-user') {
const users = await axios({
method: 'get',
url: `${sdkApiUrl}/multi-user/list-users`,
headers: {
Authorization: response.data.token,
'Content-Type': 'application/json',
},
});
const user = await multiUserSelect(users.data);
const res = await axios({
method: 'post',
url: `${sdkApiUrl}/multi-user/user-token`,
headers: {
Authorization: response.data.token,
'Content-Type': 'application/json',
},
data: {
id: user.id,
accountId: user.accountId,
},
});
return res.data.token;
}
return response.data.token;
});
}
module.exports = getToken;