Authentification OIDC via PocketID #3

Closed
opened 2026-05-23 18:18:22 +00:00 by RiasGFirst · 0 comments
Owner

Description : Intégration de PocketID via OIDC pour la gestion des utilisateurs et sécurisation des routes.

Tâches

  • Configurer la stratégie OIDC (ex: passport-openidconnect ou openid-client) avec les credentials PocketID.
  • Créer la route GET /api/auth/login (redirection vers PocketID).
  • Créer la route GET /api/auth/callback pour récupérer le token et synchroniser l'utilisateur en BDD (création si inexistant).
  • Implémenter un middleware isAuthenticated pour protéger les routes.
  • Créer la route GET /api/accounts/me (retourne les infos du JWT + photo PocketID).
  • Créer la route DELETE /api/auth/delete (supprime l'entrée dans la table Users de PostgreSQL).

Validations

  • Redirection : Un clic sur "Login" redirige bien vers l'interface de PocketID.
  • Persistance : Après une connexion réussie, une nouvelle ligne apparaît dans la table Users de PostgreSQL avec l'UUID fourni par PocketID.
  • Accès protégé : Tenter d'accéder à /api/accounts/me sans être connecté renvoie un code 401 Unauthorized (format {status: 401, ...}).
  • Données : La route /me affiche l'URL de la profile_picture issue du claim OIDC de PocketID.
  • Suppression : Après l'appel à /delete, l'utilisateur n'existe plus en BDD et sa session est détruite (un nouvel accès à /me renvoie 401).

Test:

  • Créer une page HTML de test index.html (statique) avec trois boutons : Login, Profil, Delete. Pour tester les fonctionnalité implementé
**Description** : Intégration de PocketID via OIDC pour la gestion des utilisateurs et sécurisation des routes. ## Tâches * [x] Configurer la stratégie OIDC (ex: `passport-openidconnect` ou `openid-client`) avec les credentials PocketID. * [x] Créer la route `GET /api/auth/login` (redirection vers PocketID). * [x] Créer la route `GET /api/auth/callback` pour récupérer le token et synchroniser l'utilisateur en BDD (création si inexistant). * [x] Implémenter un middleware `isAuthenticated` pour protéger les routes. * [x] Créer la route `GET /api/accounts/me` (retourne les infos du JWT + photo PocketID). * [x] Créer la route `DELETE /api/auth/delete` (supprime l'entrée dans la table `Users` de PostgreSQL). ## Validations * [ ] Redirection : Un clic sur "Login" redirige bien vers l'interface de PocketID. * [x] Persistance : Après une connexion réussie, une nouvelle ligne apparaît dans la table `Users` de PostgreSQL avec l'UUID fourni par PocketID. * [x] Accès protégé : Tenter d'accéder à `/api/accounts/me` sans être connecté renvoie un code 401 Unauthorized (format `{status: 401, ...}`). * [x] Données : La route `/me` affiche l'URL de la `profile_picture` issue du claim OIDC de PocketID. * [x] Suppression : Après l'appel à `/delete`, l'utilisateur n'existe plus en BDD et sa session est détruite (un nouvel accès à `/me` renvoie 401). ## Test: * [x] Créer une page HTML de test `index.html` (statique) avec trois boutons : Login, Profil, Delete. Pour tester les fonctionnalité implementé
RiasGFirst referenced this issue from a commit 2026-05-25 08:04:08 +00:00
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
RiasNetwork/riasbudget#3
No description provided.