Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Authentification utilisateur #63

Open
JeffreyGbeho opened this issue Nov 23, 2024 · 0 comments · May be fixed by #98
Open

Authentification utilisateur #63

JeffreyGbeho opened this issue Nov 23, 2024 · 0 comments · May be fixed by #98
Assignees
Milestone

Comments

@JeffreyGbeho
Copy link
Collaborator

JeffreyGbeho commented Nov 23, 2024

Contexte

Les utilisateurs doivent pouvoir s'inscrire et se connecter à la marketplace via différentes méthodes d'authentification : email/password classique, Google OAuth2 ou Facebook OAuth2. Le système doit gérer les tokens d'authentification de manière sécurisée.

Objectifs

  • Implémenter un système d'authentification flexible et sécurisé
  • Proposer trois méthodes d'authentification (email/password, Google, Facebook)
  • Gérer les access tokens et refresh tokens
  • Assurer une expérience utilisateur fluide
  • Sécuriser les routes protégées de l'application

Spécifications techniques

  • Stockage sécurisé dans le localStorage
  • Intercepteur Axios pour :
    • Ajout automatique du token aux requêtes
    • Refresh automatique du token expiré
    • Retry des requêtes échouées

Spécifications fonctionnelles

Inscription Email/Password

  • Formulaire avec :
    • Email (validation format email)
    • Mot de passe (règles de complexité)
    • Confirmation mot de passe
    • Prénom
    • Nom
    • Conditions d'utilisation (checkbox)
  • Validation en temps réel
  • Messages d'erreur
  • Redirection post-inscription

Connexion Email/Password

  • Formulaire avec :
    • Email
    • Mot de passe
  • Gestion des erreurs d'authentification

Authentification OAuth

  • Boutons de connexion pour chaque provider (Google, Facebook)
  • Popups de connexion en utilisant les liens :
  • http://localhost:8080/api/v1/oauth2/authorization/google?redirect_uri=http://localhost:5173/oauth/redirect
  • http://localhost:8080/api/v1/oauth2/authorization/facebook?redirect_uri=http://localhost:5173/oauth/redirect
  • Récupération des tokens d'authentification via l'url /oauth/redirect
  • Gestion des erreurs

Gestion des tokens

  • Stockage sécurisé des tokens
  • Refresh automatique de l'access token
  • Déconnexion avec révocation des tokens

Informations utiles

Système automatique pour récupérer un acces_token à partir du refresh_token et de renouveler la requête avec le nouveau access_token.

En lançant le backend, tu as accès au swagger qui est la documentation de toutes les routes du back
http://localhost:8080/api/v1/swagger-ui/index.html

Payload inscription :
{ "email": "email", "password": "password", "firstname": "firstname", "lastname": "lastname" }

Payload connexion email/password :
{ "email": "email", "password": "password" }

La route de redirection après une authentification avec Oauth2 (google ou facebook) c'est http://localhost:5173/oauth/redirect. Ca permettra

@JeffreyGbeho JeffreyGbeho added enhancement New feature or request Front labels Nov 23, 2024
@JeffreyGbeho JeffreyGbeho added this to the User account milestone Nov 23, 2024
@SayliDev SayliDev self-assigned this Nov 23, 2024
@JeffreyGbeho JeffreyGbeho added feature and removed enhancement New feature or request labels Dec 15, 2024
@JeffreyGbeho JeffreyGbeho changed the title User account Authentification utilisateur Dec 15, 2024
@SayliDev SayliDev linked a pull request Feb 16, 2025 that will close this issue
@SayliDev SayliDev linked a pull request Feb 23, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants