123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- var token = require('token');
- var bcrypt = require('bcryptjs');
- // Parametrage token
- token.defaults.timeStep = 60 * 60 * 12; // Validité de 12 heures en seconde
- token.defaults.secret = 'f5152bfd5894ae15103690d16ca09c38';
- // Class auhtentification
- class Auth {
- isActivated() {
- return global.auth
- }
- generateToken(user) {
- if(user === undefined || user === null) {
- return false;
- }
- return token.generate(user);
- }
- invalidateToken(user, userToken) {
- if(user === undefined || user === null || userToken === undefined || userToken === null) {
- return false;
- }
- return token.invalidate(user, userToken);
- }
- passwordHash(password) {
- const salt = bcrypt.genSaltSync(10);
- return bcrypt.hashSync(password, salt);
- }
- passwordVerify(password, hash) {
- return bcrypt.compareSync(password, hash)
- }
- verify(user, userToken) {
- // Regarde si l'authentification est activée
- if(!this.isActivated()) {
- return true
- }
- // Verifie que l'utilisateur et le token n'est pas null
- if(user === undefined || user === null || userToken === undefined || userToken === null) {
- return false;
- }
- // Test la validitée du token
- switch(token.verify(user, userToken)) {
- case token.VALID:
- case token.EXPIRING:
- return true;
- case token.INVALID:
- return false;
- default:
- return false;
- }
- }
- }
- // Export
- let auth = new Auth();
- module.exports = auth;
|