72 lines
2.2 KiB
JavaScript
72 lines
2.2 KiB
JavaScript
/* eslint-disable no-unused-vars */
|
|
const { ipcRenderer, remote } = require("electron");
|
|
const axios = require("axios").default;
|
|
const path = require("path");
|
|
|
|
// Check if a session already exists
|
|
var session = ipcRenderer.sendSync("getSession");
|
|
if (session.accessToken) {
|
|
console.log("Session does exist, go to main");
|
|
remote.getCurrentWindow().loadURL(path.join(`file://${__dirname}/main.hbs`));
|
|
} else {
|
|
console.log("Session does not exist, continue");
|
|
}
|
|
|
|
// Read auth data from storage and define variables
|
|
var authData = ipcRenderer.sendSync("getAuth");
|
|
var save = true;
|
|
|
|
async function authenticate(user, password) {
|
|
var payload = {
|
|
"agent": {
|
|
"name": "Minecraft",
|
|
"version": 1
|
|
},
|
|
"username": user,
|
|
"password": password
|
|
};
|
|
|
|
axios({
|
|
method: "POST",
|
|
url: "https://authserver.mojang.com/authenticate",
|
|
data: payload,
|
|
}).then((data) => {
|
|
console.log("Login successfull");
|
|
session = data.data;
|
|
|
|
// Save username (& password) for future login
|
|
authData.user = user;
|
|
authData.password = (save) ? password : "";
|
|
|
|
if (ipcRenderer.sendSync("setAuth", authData)) {
|
|
if (ipcRenderer.sendSync("setSession", session)) {
|
|
remote.getCurrentWindow().loadURL(path.join(`file://${__dirname}/main.hbs`));
|
|
}
|
|
}
|
|
}).catch((data) => {
|
|
console.log("Login failure");
|
|
console.log(data.response);
|
|
|
|
const msg = document.querySelectorAll("div.content > p.message")[0];
|
|
msg.classList.add("warning");
|
|
msg.innerHTML = data.response.data.errorMessage;
|
|
});
|
|
}
|
|
|
|
// Get access token from Mojang Authserver
|
|
const form = document.querySelectorAll("div.content > div.right > form")[0];
|
|
form.querySelectorAll("input#user")[0].value = authData.user;
|
|
form.querySelectorAll("input#password")[0].value = authData.password;
|
|
|
|
if (authData.password != "") {
|
|
form.querySelectorAll("input#save")[0].checked = true;
|
|
}
|
|
|
|
// Listen for form submit
|
|
form.addEventListener("submit", function(e) {
|
|
e.preventDefault();
|
|
authData.user = form.querySelectorAll("input#user")[0].value;
|
|
authData.password = form.querySelectorAll("input#password")[0].value;
|
|
save = form.querySelectorAll("input#save")[0].checked;
|
|
authenticate(authData.user, authData.password);
|
|
}); |