feat: add authentication modal component and user authentication logic

- Implemented AuthModal.vue for user login and registration with form handling.
- Created useAuth composable for managing user state and authentication requests.
- Added admin route middleware to protect admin routes.
- Developed admin login page with authentication checks.
- Implemented API endpoints for user management (login, logout, fetch user, register).
- Created database migrations for users table and updated movies table.
- Added utility functions for password hashing and JWT token management.
This commit is contained in:
ngthanhvu
2026-07-22 04:26:58 -04:00
parent ad8d577493
commit d982449464
29 changed files with 1965 additions and 178 deletions
+23
View File
@@ -0,0 +1,23 @@
export function useAuth() {
const user = useState<any>('auth-user', () => null)
const loading = useState('auth-loading', () => true)
async function fetchUser() {
try {
loading.value = true
const data = await $fetch('/api/auth/me')
user.value = data
} catch {
user.value = null
} finally {
loading.value = false
}
}
async function logout() {
await $fetch('/api/auth/logout', { method: 'POST' })
user.value = null
}
return { user, loading, fetchUser, logout }
}