Version 0.1.2 - Ajout du systême d'authentification
This commit is contained in:
91
bin/auth.js
Normal file
91
bin/auth.js
Normal file
@ -0,0 +1,91 @@
|
||||
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.getUsers().forEach((fetchUser) => {
|
||||
if(fetchUser.tokens.includes(token)) {
|
||||
isApproved = true
|
||||
username = fetchUser.username
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
if(isApproved) {
|
||||
alog.log("Connexion par Token de l'utilisateur : " + username)
|
||||
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.getUsers().has(username)) {
|
||||
const user = users.getUsers().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.getUsers().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
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user