Skip to content

jochri3/authentification-robuste-reutilisable-nodejs

Repository files navigation

Authentification robuste et réutilisable

Cet projet implémente un système d'authentification robuste et fiable que vous pouvez réutiliser dans n'importe quel projet
Le mécanisme d'authentification utilisé est basé sur des stratégies passport qui est très flexible et qui peut être utilisé avec n'importe quelle autre stratégie d'authentification telles que Oauth2 , jwt , cookies-session, etc..
Dans le cas de ce projet, l'authentification utilisé est celle du standard jsonwebtoken combiné avec une autre stratégie locale. Avec le code existant vous pouvez très facilement ajouter des stratégies basées sur Oauth2(Google, Facebook, Githhub, Google,etc..)

Dans ce projet, le SGBD utilisé est MongoDB, mais vous pouvez le remplacer par n'importe quel système de stockage nosql ou relationnel comme MySQL, MariaDB ou encore PostreSQL car toutes les fonctionnalités de importantes sont indépendantes du système de stockage utilisé.

Comment faire fonctionner ce projet?

  • Avoir node.js installé avec npm ou yarn
  • Avoir Mongodb installé en local ou une base de données sur le cloud

Dans votre terminal, positionnez-vous dans le dossier principal du projet et exécutez la commande :
git clone https://github.com/jochri3/authentification-robuste-reutilisable-nodejs.git pour cloner le projet dans votre système

Installer tous les dépendance avec :

yarn ou npm install selon que vous utilisez yarn ou npm

Démarrer le projet avec :

yarn dev

Pour ouvrir l'application en développement.

Ouvrir http://localhost:3090 pour le voir dans le navigateur.

Comment utiliser cette API?

L'API possède 3 routes:

import router from '../router';
const { authRouter, autreRessource } = router;

app.use('/api/auth', authRouter);
app.use('/api/autre', autreRessource);
authRouter.post('/signin', requireSignin, Authentication.signin);
authRouter.post('/signup', Authentication.signup);
autreRessource.get('/', requireAuth, (req, res) => {
  res.send({
    message: 'Voici comment proteger une route par authentification',
  });
});

export default {
  authRouter,
  autreRessource,
};
  • GET /api/autre : Route de test protégé par un middleware nommé requireAuth qui protège l'accès à la ressource.
  • POST /api/auth/sigin qui recois de req.body des donnée en json en avec comme squelette {email:'[email protected]',password:'mot de passe'}.Si l'authentification se passe bien, cette route retourne un JSON WEB TOKEN.
    Ce token vous pouvez l'ajouter comme valeur dans le header authorization et tester la route GET /api/autre.
  • POST /api/auth/signup qui recois {email:'[email protected]',password:'mot de passe'} pour créer un nouvel utilisateur et après sa création elle retourne un JSON WEB TOKEN

Signup route

Signin route

Route protégée

Logs

Ce projet possède des logs qui sont une très bonne pratique dans le développement d'une API et vous permet d'avoir des informations telles que des rapports de bugs par exemple.Pour cela les libraries utilisées sont winston et morgan combinées.

Si vous avez des questions, n'hesitez pas de m'écrire sur [email protected]

Ressources importantes

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published