39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
## Description
|
||
Cette première partie du projet consiste à développer une API REST avec FastAPI permettant de gérer l’authentification et les comptes utilisateurs avec plusieurs niveaux de permissions.
|
||
|
||
L’API utilise PostgreSQL pour stocker les utilisateurs, SQLAlchemy pour communiquer avec la base de données et des JSON Web Tokens (JWT) pour sécuriser l’accès aux routes protégées.
|
||
|
||
Les fonctionnalités ont été testées avec Postman afin de vérifier le bon fonctionnement des routes, de l’authentification et du contrôle des permissions.
|
||
|
||
## Fonctionnalités:
|
||
### Authentification
|
||
- Connexion d'un utilisateur avec @ et mot de passe
|
||
- Vérification du mdp à partir de son empreinte hachée
|
||
- Génération de token JWT
|
||
- Expiration configurable de token
|
||
- Récupération des infos de l'utilisateur connecté
|
||
|
||
### Gestion des utilisateurs:
|
||
- Création initiale d'un compte "super_admin" via un scrpit CLI
|
||
- Tous les comptes utilisateurs sont créés par super_admin (pour le moment)
|
||
- Consultation de liste utilisateurs
|
||
- Modification du rôle
|
||
- Activation/désactivation d'un compte
|
||
- Vérification e-mail/ permissions
|
||
|
||
Rôle: user, candidat, student, prof, entreprise, alumni
|
||
|
||
Dans la version actuelle, les routes de gestion des comptes sont réservées qau super_admin. Les permissions spécifiques des autres rôles seront développés au fur et à mesure.
|
||
|
||
Le rôle super_admin est créé séparément à l’aide d’un script CLI et ne peut pas être attribué par la route standard de création d’utilisateurs.
|
||
|
||
## Technologies utilisées:
|
||
- Python
|
||
- FastAPI
|
||
- PostgreSQL
|
||
- SQLAlchemy
|
||
- uv
|
||
- Postman
|
||
|
||
## Lancement de l'app
|
||
uv run uvicorn src.auth_project.main:app --reload |