Ajout initial des fichiers du projet
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
module.exports = {
|
||||
"development": {
|
||||
"username": 'c4adastracomu1',
|
||||
"password": 'kbrnrt5jPK12',
|
||||
"database": 'c4adastracomdb1',
|
||||
"host": '176.31.255.24',
|
||||
"port": 3306,
|
||||
"dialect": 'mysql'
|
||||
},
|
||||
"test": {
|
||||
"username": 'c4adastracomu1',
|
||||
"password": 'kbrnrt5jPK12',
|
||||
"database": 'c4adastracomdb1',
|
||||
"host": '176.31.255.24',
|
||||
"port": 3306,
|
||||
"dialect": 'mysql'
|
||||
},
|
||||
"production": {
|
||||
"username": 'c4adastracomu1',
|
||||
"password": 'kbrnrt5jPK12',
|
||||
"database": 'c4adastracomdb1',
|
||||
"host": '176.31.255.24',
|
||||
"port": 3306,
|
||||
"dialect": 'mysql'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
const config = {
|
||||
secret: process.env.SECRET || 'acapisecret',
|
||||
session_lifetime: process.env.SESSION_LIFETIME || 21600 // 21600 secondes = 6 heures
|
||||
};
|
||||
module.exports = config;
|
||||
@@ -0,0 +1,61 @@
|
||||
var secret = require('../config').secret,
|
||||
bcrypt = require('bcrypt');
|
||||
const passport = require('passport');
|
||||
var LocalStrategy = require('passport-local').Strategy;
|
||||
var HeaderAPIKeyStrategy = require('passport-headerapikey').HeaderAPIKeyStrategy;
|
||||
var mongoose = require('mongoose');
|
||||
var Application = mongoose.model('Application');
|
||||
var User = mongoose.model('User');
|
||||
|
||||
passport.use('headerapikey', new HeaderAPIKeyStrategy(
|
||||
{ header: 'Authorization', prefix: `${process.env.AUTHORIZATION_PREFIX} ` },
|
||||
false,
|
||||
function (apikey, done) {
|
||||
const salt = secret;
|
||||
Promise.resolve(bcrypt.hash(apikey, salt)).then(function (encryptedKey) {
|
||||
Application.findOne({ encryptedKey: encryptedKey })
|
||||
.populate('author')
|
||||
.then(function (application) {
|
||||
if (!application) {
|
||||
return done({message: "Application can't be found.", status: 404}, false, false);
|
||||
}
|
||||
console.log('encryptedKey: ', encryptedKey);
|
||||
return done(null, application);
|
||||
});
|
||||
}).catch(done);
|
||||
/*
|
||||
const salt = secret;
|
||||
Promise.resolve(bcrypt.hash(apikey, salt)).then(function (encryptedKey) {
|
||||
Application.findOne({ encryptedKey: encryptedKey })
|
||||
.populate('author')
|
||||
.then(function (application) {
|
||||
if (!application) {
|
||||
return done({message: "Application can't be found.", status: 404}, false, false);
|
||||
}
|
||||
console.log('encryptedKey: ', encryptedKey);
|
||||
return done(null, application);
|
||||
return {app: application, prom: Promise.resolve(bcrypt.compare(apikey, application.apikey))};
|
||||
}).then(function (res) {
|
||||
res.prom.then(function (valid) {
|
||||
if (!valid) {
|
||||
return done(null, false, {app: res.app, valid: valid});
|
||||
}
|
||||
return done(null, res.app, valid);
|
||||
});
|
||||
});
|
||||
}).catch(done);
|
||||
*/
|
||||
}
|
||||
));
|
||||
|
||||
passport.use('local', new LocalStrategy({
|
||||
usernameField: 'user[email]',
|
||||
passwordField: 'user[password]'
|
||||
}, function (email, password, done) {
|
||||
User.findOne({ email: email }).then(function (user) {
|
||||
if (!user || !user.validPassword(password)) {
|
||||
return done(null, false, { errors: { 'email ou mot de passe': 'invalide' } });
|
||||
}
|
||||
return done(null, user);
|
||||
}).catch(done);
|
||||
}));
|
||||
Reference in New Issue
Block a user