56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
const { generateJWT, verifyJWT } = require("../middlewares/jwt");
|
|
const returndata = require("../middlewares/returndata");
|
|
const Logins = require("../models/logins");
|
|
const { createSession } = require("./process");
|
|
const { queryLogin } = require("./query");
|
|
|
|
const siginLogin = async function (email, password) {
|
|
try {
|
|
const login = await queryLogin({ email: email, password: password });
|
|
|
|
if (login.Success === false && !login.Data) {
|
|
return login;
|
|
};
|
|
|
|
const accountData = {
|
|
id: login.Data.account.id,
|
|
name: login.Data.account.name,
|
|
surname: login.Data.account.surname,
|
|
username: login.Data.account.username,
|
|
email: email
|
|
};
|
|
|
|
const tokenJWT = await generateJWT({
|
|
account: accountData
|
|
});
|
|
|
|
|
|
if (login.Success === true) {
|
|
return returndata(true, {
|
|
token: tokenJWT.Data,
|
|
account: { ...accountData }
|
|
}, true);
|
|
} else {
|
|
return returndata(true, null, false);
|
|
};
|
|
} catch (error) {
|
|
console.log(error);
|
|
return returndata(false, null, false);
|
|
};
|
|
};
|
|
exports.siginLogin = siginLogin;
|
|
|
|
const verifyLogin = async function (token) {
|
|
try {
|
|
jwtToken = token.split(' ')[1];
|
|
const verify = await verifyJWT(jwtToken);
|
|
if (verify) {
|
|
return returndata(true, verify.Data, true);
|
|
} else {
|
|
return returndata(true, null, false);
|
|
}
|
|
} catch (error) {
|
|
return returndata(false, null, false);
|
|
};
|
|
};
|
|
exports.verifyLogin = verifyLogin |