113 lines
2.8 KiB
JavaScript
113 lines
2.8 KiB
JavaScript
const { LogType } = require("loguix")
|
|
const fs = require("fs")
|
|
const path = require("path")
|
|
const { __glob } = require("./global-variables")
|
|
const alog = new LogType("Authentification")
|
|
const keygen = require("./keygen")
|
|
const users = require("./users")
|
|
|
|
/**
|
|
* Vérifie si le token est présent et appartient à un utilisateur
|
|
* @param {string} token
|
|
*/
|
|
|
|
module.exports.check = function(token) {
|
|
var isApproved = false;
|
|
var username = null
|
|
users.fetchUsers().forEach((fetchUser) => {
|
|
if(fetchUser.tokens.includes(token)) {
|
|
isApproved = true
|
|
username = fetchUser.username
|
|
}
|
|
|
|
})
|
|
|
|
if(isApproved) {
|
|
return true
|
|
} else {
|
|
if(token) {
|
|
|
|
alog.warn("Erreur d'authentification - Token n'existe pas : " + token)
|
|
}
|
|
return false
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Permet de se connecter à Neutral
|
|
* @param {object} data
|
|
* @returns Token or AUTH_FAILED
|
|
*/
|
|
module.exports.login = function(data) {
|
|
var username = data.username
|
|
var password = data.password
|
|
|
|
if(users.fetchUsers().has(username)) {
|
|
const user = users.fetchUsers().get(username)
|
|
if(password == user.getPassword()) {
|
|
const token = user.generateToken()
|
|
alog.log("Connexion approuvé de l'utilisateur : " + username)
|
|
return token
|
|
} else {
|
|
alog.warn("Echec de connexion de l'utilisateur : " + username + " - Mot de passe incorrect")
|
|
return "AUTH_FAILED"
|
|
}
|
|
|
|
} else {
|
|
alog.warn("Echec de connexion de l'utilisateur : " + username + " - Utilisateur non-inscrit dans la base de donnée")
|
|
return "AUTH_FAILED"
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Remove the token
|
|
* @param {string} token
|
|
* @returns
|
|
*/
|
|
module.exports.signout = function(token) {
|
|
var isDone = false;
|
|
var username = null
|
|
users.fetchUsers().forEach((fetchUser) => {
|
|
if(fetchUser.tokens.includes(token)) {
|
|
isDone = true
|
|
username = fetchUser.username
|
|
fetchUser.removeToken(token)
|
|
}
|
|
|
|
})
|
|
|
|
if(isDone) {
|
|
alog.log("Suppression du Token '" + token + "' de l'utilisateur : " + username)
|
|
return true
|
|
} else {
|
|
if(token) {
|
|
|
|
alog.warn("Erreur d'opération lors de la déconnexion - Token n'existe pas : " + token)
|
|
}
|
|
return false
|
|
}
|
|
|
|
}
|
|
|
|
module.exports.getUserByToken = function(token) {
|
|
var isApproved = false;
|
|
var userGetted = null
|
|
users.fetchUsers().forEach((fetchUser) => {
|
|
if(fetchUser.tokens.includes(token)) {
|
|
userGetted = fetchUser
|
|
}
|
|
|
|
})
|
|
|
|
if(userGetted) {
|
|
return userGetted
|
|
|
|
} else {
|
|
if(token) {
|
|
|
|
alog.warn("Erreur d'authentification - Token n'existe pas : " + token)
|
|
}
|
|
return false
|
|
}
|
|
|
|
} |