v2.0.0: Multi-user authentication with JWT
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 16s
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 16s
Features: - User registration and login with JWT tokens - All data is now user-specific (multi-tenancy) - Profile page with integrations and logout - Automatic migration of existing data to first user Backend changes: - Added users and refresh_tokens tables - Added user_id to all data tables (projects, entries, nodes, dictionaries, words, progress, configs, telegram_integrations, weekly_goals) - JWT authentication middleware - claimOrphanedData() for data migration Frontend changes: - AuthContext for state management - Login/Register forms - Profile page (replaced Integrations) - All API calls use authFetch with Bearer token Migration notes: - On first deploy, backend automatically adds user_id columns - First user to login claims all existing data
This commit is contained in:
16
play-life-web/src/components/auth/AuthScreen.jsx
Normal file
16
play-life-web/src/components/auth/AuthScreen.jsx
Normal file
@@ -0,0 +1,16 @@
|
||||
import React, { useState } from 'react'
|
||||
import LoginForm from './LoginForm'
|
||||
import RegisterForm from './RegisterForm'
|
||||
|
||||
function AuthScreen() {
|
||||
const [mode, setMode] = useState('login') // 'login' or 'register'
|
||||
|
||||
if (mode === 'register') {
|
||||
return <RegisterForm onSwitchToLogin={() => setMode('login')} />
|
||||
}
|
||||
|
||||
return <LoginForm onSwitchToRegister={() => setMode('register')} />
|
||||
}
|
||||
|
||||
export default AuthScreen
|
||||
|
||||
Reference in New Issue
Block a user