mirror of
https://github.com/artegoser/pimi-launcher-core.git
synced 2024-11-22 20:26:22 +03:00
59 lines
No EOL
1.5 KiB
JavaScript
59 lines
No EOL
1.5 KiB
JavaScript
const request = require('request');
|
|
const uuid = require('uuid/v1');
|
|
const api_url = "https://authserver.mojang.com";
|
|
|
|
|
|
function login(username, password) {
|
|
return new Promise(resolve => {
|
|
const requestObject = {
|
|
url: api_url + "/authenticate",
|
|
json: {
|
|
agent: {
|
|
name: "Minecraft",
|
|
version: 1
|
|
},
|
|
username: username,
|
|
password: password,
|
|
requestUser: true
|
|
}
|
|
};
|
|
|
|
request.post(requestObject, function(error, response, body) {
|
|
if (error) resolve(error);
|
|
if(!body.selectedProfile) {
|
|
throw new Error("Validation error: " + response.statusMessage);
|
|
}
|
|
|
|
const userProfile = {
|
|
access_token: body.accessToken,
|
|
client_token: uuid(),
|
|
uuid: body.selectedProfile.id,
|
|
name: body.selectedProfile.name,
|
|
user_properties: JSON.stringify((body.user || {}).properties || {})
|
|
};
|
|
|
|
resolve(userProfile);
|
|
});
|
|
});
|
|
}
|
|
|
|
function offline(username) {
|
|
let user = {
|
|
access_token: uuid(),
|
|
client_token: uuid(),
|
|
uuid: uuid(),
|
|
name: username,
|
|
user_object: JSON.stringify({})
|
|
};
|
|
|
|
return user;
|
|
}
|
|
|
|
|
|
module.exports = async function(_offline, username, password) {
|
|
if(_offline) {
|
|
return offline(username);
|
|
}
|
|
|
|
return await login(username, password);
|
|
}; |