You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As a Customer, I want registrarmi e accedere con le mie credenziali, So that posso avere un profilo personale, uno storico ordini e un'esperienza di acquisto personalizzata.
Acceptance Criteria
Given che sono un nuovo visitatore, When clicco "Registrati", Then vedo un form di registrazione con campi: nome, email, password, conferma password
Given che compilo il form di registrazione con dati validi, When invio il form, Then il mio account viene creato e vengo reindirizzato alla homepage con sessione attiva
Given che ho un account, When inserisco email e password corrette nel form di login, Then accedo alla piattaforma e vedo il mio nome nella navbar
Given che sono autenticato, When clicco "Esci", Then la sessione viene terminata e vengo reindirizzato alla homepage
Given che inserisco credenziali errate, When invio il form di login, Then vedo un messaggio di errore generico "Credenziali non valide"
Given che provo a registrarmi con un'email già in uso, When invio il form, Then vedo il messaggio "Email già registrata"
Given che non sono autenticato, When scrivo una recensione, Then il mio nome viene precompilato come "Anonimo" (backward compatibility)
Notes
Usare ASP.NET Core Identity per la gestione utenti
Password hashing con bcrypt/PBKDF2 (default di Identity)
Non implementare OAuth/social login in questa story (future enhancement)
La registrazione non richiede conferma email per MVP
Mantenere backward compatibility: il sistema recensioni deve funzionare anche senza login
Story Points: 8
Task Breakdown
1. [TASK-012] Aggiungere il modello User e configurare Identity (Layer: Core/Infrastructure)
Creare modello ApplicationUser che estende IdentityUser con campo FullName
[US-003] Autenticazione utente
As a Customer,
I want registrarmi e accedere con le mie credenziali,
So that posso avere un profilo personale, uno storico ordini e un'esperienza di acquisto personalizzata.
Acceptance Criteria
Notes
Story Points: 8
Task Breakdown
1. [TASK-012] Aggiungere il modello User e configurare Identity (Layer: Core/Infrastructure)
ApplicationUserche estendeIdentityUsercon campoFullNameDbContextsrc/ClaudeClothes.Core/Models/ApplicationUser.cs(nuovo),src/ClaudeClothes.Infrastructure/Data/ClaudeClothesDbContext.cs,src/ClaudeClothes.Web/Program.cs2. [TASK-013] Implementare il servizio di autenticazione (Layer: Infrastructure)
IAuthServicecon metodi:RegisterAsync,LoginAsync,LogoutAsync,GetCurrentUserAsyncAuthServiceusandoUserManager<ApplicationUser>eSignInManager<ApplicationUser>src/ClaudeClothes.Core/Interfaces/IAuthService.cs(nuovo),src/ClaudeClothes.Infrastructure/Services/AuthService.cs(nuovo)3. [TASK-014] Creare le pagine di Login e Registrazione (Layer: Web)
/logincon form email/password/registercon form nome/email/password/conferma passwordsrc/ClaudeClothes.Web/Pages/Login.razor(nuovo),src/ClaudeClothes.Web/Pages/Register.razor(nuovo)4. [TASK-015] Aggiornare la navbar con stato autenticazione (Layer: Web)
AuthenticationStateProviderdi Blazorsrc/ClaudeClothes.Web/Shared/NavMenu.razor,src/ClaudeClothes.Web/Shared/MainLayout.razor5. [TASK-016] Integrare autenticazione con il sistema recensioni (Layer: Web)
src/ClaudeClothes.Web/Pages/ClothingItemDetails.razor6. [TASK-017] Test per autenticazione (Layer: Tests)
tests/ClaudeClothes.Tests/AuthServiceTests.cs(nuovo)