feat: implement user authentication with login and register

- Add login screen with email/username support
- Add register screen with email validation
- Implement AuthStore with expo-secure-store (native) / localStorage (web)
- Add X-User-Id header authentication (simple auth without JWT)
- Rename displayName to userName across codebase
- Add findByUserName() to UserRepository
- Check for existing email AND username on registration
- Add AuthButton component with shadow effect
- Add logout button to Header
- Add hash-password.js utility script for manual password resets
- Update CORS to allow X-User-Id header
This commit is contained in:
2026-01-10 20:07:35 +01:00
parent 71f84d1cc7
commit 8efe6c304e
20 changed files with 468 additions and 108 deletions

View File

@@ -1,7 +1,7 @@
export interface User {
id: string;
email: string;
displayName: string;
userName: string;
passwordHash?: string;
createdAt?: Date;
updatedAt?: Date;
@@ -9,12 +9,12 @@ export interface User {
export interface CreateUserDTO {
email: string;
displayName: string;
userName: string;
password: string;
}
export interface LoginDTO {
email: string;
identifier: string;
password: string;
}