Réorganisation des sources
This commit is contained in:
+10
-1
@@ -1,6 +1,15 @@
|
||||
|
||||
|
||||
|
||||
const config = {
|
||||
secret: process.env.SECRET || 'acapisecret',
|
||||
session_lifetime: process.env.SESSION_LIFETIME || 21600 // 21600 secondes = 6 heures
|
||||
session_lifetime: parseInt(process.env.SESSION_LIFETIME) || 21600, // 21600 secondes = 6 heures
|
||||
initAuth: () => {
|
||||
require('./passport-local');
|
||||
},
|
||||
initApiKey: () => {
|
||||
require('./passport-headerapikey');
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = config;
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
var secret = require('.').secret,
|
||||
bcrypt = require('bcrypt');
|
||||
const passport = require('passport');
|
||||
var HeaderAPIKeyStrategy = require('passport-headerapikey').HeaderAPIKeyStrategy;
|
||||
var mongoose = require('mongoose');
|
||||
var Application = mongoose.model('Application');
|
||||
|
||||
|
||||
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);
|
||||
}
|
||||
return done(null, application);
|
||||
});
|
||||
}).catch(done);
|
||||
}
|
||||
));
|
||||
@@ -0,0 +1,18 @@
|
||||
const passport = require('passport');
|
||||
var LocalStrategy = require('passport-local').Strategy;
|
||||
|
||||
const { UserService } = require('../services');
|
||||
|
||||
passport.use('local', new LocalStrategy({
|
||||
usernameField: 'user[email]',
|
||||
passwordField: 'user[password]'
|
||||
}, function (email, password, done) {
|
||||
UserService.getUserByEmail({ email }).then(function (user) {
|
||||
//User.findOne({ email: email }).then(function (user) {
|
||||
//console.log(user);
|
||||
if (!user || !user.validPassword(password)) {
|
||||
return done(null, false, { errors: { 'email ou mot de passe': 'invalide' } });
|
||||
}
|
||||
return done(null, user);
|
||||
}).catch(done);
|
||||
}));
|
||||
@@ -2,8 +2,7 @@
|
||||
const chalk = require('chalk');
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
|
||||
const DB = require('.');
|
||||
const DB = require('./mysql');
|
||||
const sequelize = require('./config/sequelize');
|
||||
const associate = require('./relationships');
|
||||
const utils = require('../utils');
|
||||
|
||||
@@ -2,8 +2,7 @@ var mongoose = require('mongoose');
|
||||
var uniqueValidator = require('mongoose-unique-validator');
|
||||
var crypto = require('crypto');
|
||||
var jwt = require('jsonwebtoken'),
|
||||
secret = require('../../../config').secret,
|
||||
session_lifetime = require('../../../config').session_lifetime;
|
||||
config = require('../../../config');
|
||||
|
||||
var UserSchema = new mongoose.Schema({
|
||||
email: { type: String, lowercase: true, unique: true, required: [true, "email can't be blank"], match: [/\S+@\S+\.\S+/, 'is invalid'], index: true },
|
||||
@@ -36,13 +35,13 @@ UserSchema.methods.setPassword = function (password) {
|
||||
|
||||
UserSchema.methods.generateJWT = function () {
|
||||
var today = new Date();
|
||||
var exp = new Date(today.getTime() + (session_lifetime * 1000));
|
||||
var exp = new Date(today.getTime() + (config.session_lifetime * 1000));
|
||||
|
||||
return jwt.sign({
|
||||
id: this._id,
|
||||
username: this.username,
|
||||
exp: parseInt(exp.getTime() / 1000)
|
||||
}, secret, { algorithm: 'HS256' });
|
||||
}, config.secret, { algorithm: 'HS256' });
|
||||
};
|
||||
|
||||
UserSchema.methods.toAuthJSON = function () {
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
const { DataTypes, Model } = require("sequelize");
|
||||
var crypto = require('crypto');
|
||||
var jwt = require('jsonwebtoken'),
|
||||
secret = require('../../../config').secret,
|
||||
session_lifetime = require('../../../config').session_lifetime;
|
||||
config = require('../../../config')
|
||||
|
||||
const sequelize = require("../../config/sequelize");
|
||||
|
||||
@@ -100,13 +99,13 @@ const UserModel = () => {
|
||||
|
||||
User.prototype.generateJWT = function () {
|
||||
var today = new Date();
|
||||
var exp = new Date(today.getTime() + (session_lifetime * 1000));
|
||||
var exp = new Date(today.getTime() + (config.session_lifetime * 1000));
|
||||
|
||||
return jwt.sign({
|
||||
id: this.id,
|
||||
username: this.username,
|
||||
exp: parseInt(exp.getTime() / 1000)
|
||||
}, secret, { algorithm: 'HS256' });
|
||||
}, config.secret, { algorithm: 'HS256' });
|
||||
};
|
||||
|
||||
User.prototype.toAuthJSON = function () {
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
exports.Article = require('./Article');
|
||||
exports.ArticleTag = require('./ArticleTag');
|
||||
exports.Comment = require('./Comment');
|
||||
exports.Favorite = require('./Favorite');
|
||||
exports.Follower = require('./Follower');
|
||||
exports.Tag = require('./Tag');
|
||||
exports.TagList = require('./TagList');
|
||||
exports.User = require('./User');
|
||||
@@ -1,3 +1,4 @@
|
||||
var DataTypes = require("sequelize").DataTypes;
|
||||
const sequelize = require('./config/sequelize');
|
||||
const ArticleModel = require('./models/mysql/Article');
|
||||
const ArticleTageModel = require('./models/mysql/ArticleTag');
|
||||
@@ -10,14 +11,14 @@ const UserModel = require('./models/mysql/User');
|
||||
|
||||
const DB = {
|
||||
sequelize,
|
||||
User: UserModel(sequelize),
|
||||
Article: ArticleModel(sequelize),
|
||||
ArticleTag: ArticleTageModel(sequelize),
|
||||
Comment: CommentModel(sequelize),
|
||||
Favorite: FavoriteModel(sequelize),
|
||||
Follower: FollowerModel(sequelize),
|
||||
Tag: TagModel(sequelize),
|
||||
TagList: TagListModel(sequelize),
|
||||
User: UserModel(sequelize, DataTypes),
|
||||
Article: ArticleModel(sequelize, DataTypes),
|
||||
ArticleTag: ArticleTageModel(sequelize, DataTypes),
|
||||
Comment: CommentModel(sequelize, DataTypes),
|
||||
Favorite: FavoriteModel(sequelize, DataTypes),
|
||||
Follower: FollowerModel(sequelize, DataTypes),
|
||||
Tag: TagModel(sequelize, DataTypes),
|
||||
TagList: TagListModel(sequelize, DataTypes),
|
||||
};
|
||||
|
||||
module.exports = DB;
|
||||
@@ -1,4 +1,4 @@
|
||||
const DB = require('../index');
|
||||
const DB = require('../mysql');
|
||||
|
||||
const associate = () => {
|
||||
/*
|
||||
|
||||
@@ -2,16 +2,3 @@ var routes = require('express').Router();
|
||||
routes.use('/api', require('./api'));
|
||||
|
||||
module.exports = routes;
|
||||
|
||||
/*
|
||||
const express = require('express');
|
||||
const articleRouter = require('./api/article.routes');
|
||||
const userRouter = require('./api/user.routes');
|
||||
|
||||
const routes = express.Router();
|
||||
|
||||
routes.use('/user', userRouter);
|
||||
routes.use('/article', articleRouter);
|
||||
|
||||
module.exports = routes;
|
||||
*/
|
||||
@@ -1,4 +1,4 @@
|
||||
const DB = require('../database');
|
||||
const DB = require('../database/mysql');
|
||||
|
||||
const { Article } = DB;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const DB = require('../database');
|
||||
const DB = require('../database/mysql');
|
||||
|
||||
const { Comment } = DB;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const DB = require('../database');
|
||||
const DB = require('../database/mysql');
|
||||
|
||||
const { Tag } = DB;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const DB = require('../database');
|
||||
const DB = require('../database/mysql');
|
||||
|
||||
const { User } = DB;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user