Réorganisation des sources

This commit is contained in:
Rampeur
2025-08-15 19:39:35 +02:00
parent e17fecc554
commit 5d361da628
38 changed files with 106 additions and 2860 deletions
+10 -1
View File
@@ -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;
+25
View File
@@ -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);
}
));
+18
View File
@@ -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);
}));
+1 -2
View File
@@ -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');
+3 -4
View File
@@ -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 () {
+3 -4
View File
@@ -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 () {
+8
View File
@@ -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 -1
View File
@@ -1,4 +1,4 @@
const DB = require('../index');
const DB = require('../mysql');
const associate = () => {
/*
-13
View File
@@ -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 -1
View File
@@ -1,4 +1,4 @@
const DB = require('../database');
const DB = require('../database/mysql');
const { Article } = DB;
+1 -1
View File
@@ -1,4 +1,4 @@
const DB = require('../database');
const DB = require('../database/mysql');
const { Comment } = DB;
+1 -1
View File
@@ -1,4 +1,4 @@
const DB = require('../database');
const DB = require('../database/mysql');
const { Tag } = DB;
+1 -1
View File
@@ -1,4 +1,4 @@
const DB = require('../database');
const DB = require('../database/mysql');
const { User } = DB;