2.2 KiB
2.2 KiB
Simplify Authentik Auth - Tasks
Phase 1: Remove Old Auth Code
-
Task 1.1: Remove JWT service (
src/auth/jwt_service.py)- Delete file
- Remove all imports and usages
-
Task 1.2: Remove refresh token store (
src/auth/refresh_store.py)- Delete file
- Remove refresh token model (
src/models/refresh_token.py) - Remove table in Alembic migration
-
Task 1.3: Remove complex OIDC logic
- Simplify
src/auth/oidc.pyto basic OAuth2 flow - Remove JWKS fetching
- Remove token verification
- Simplify
-
Task 1.4: Clean up auth dependencies
- Remove
python-josefrom dependencies if no longer needed - Update
pyproject.toml
- Remove
Phase 2: Implement Session Auth
-
Task 2.1: Create session service (
src/auth/session.py)- Session cookie creation/signing
- Session cookie parsing/verification
- Session expiry handling
-
Task 2.2: Update auth endpoints (
src/api/auth.py)- Simplify login endpoint
- Update callback to create session instead of JWT
- Update /me to read from session
- Simplify logout
-
Task 2.3: Update auth middleware
- Replace JWT middleware with session middleware
- Load user from database based on session
-
Task 2.4: Update configuration
- Remove JWT config
- Add SESSION_SECRET and SESSION_TTL_HOURS
- Update .env.example
- Update docker-compose configs
Phase 3: Update Frontend
-
Task 3.1: Remove JWT handling from frontend
- Delete token refresh logic
- Remove access token storage
-
Task 3.2: Update auth API client
- Remove refresh endpoint calls
- Simplify auth state management
-
Task 3.3: Update protected route logic
- Check session cookie instead of JWT
- Simpler auth state
Phase 4: Testing & Cleanup
-
Task 4.1: Update auth tests
- Rewrite tests for new session-based flow
- Remove JWT-specific tests
- Add session validation tests
-
Task 4.2: Run quality gates
- ruff check
- mypy
- pytest
- frontend typecheck + lint + build
-
Task 4.3: Documentation
- Update README with new auth flow
- Update deployment docs
- Document configuration changes