Frontend: - Add @azure/msal-browser and @azure/msal-react packages - Create authConfig.ts with MSAL configuration for PKCE flow - Create authService.ts for token acquisition and user info - Wrap App with MsalProvider in index.tsx - Replace dummy login with real MSAL loginPopup() in Login.tsx - Update App.tsx to use useIsAuthenticated/useMsal hooks - Update Profile.tsx to display real user data from claims - Update geminiService.ts to include access_token in WebSocket messages - Update WIPReviewer.tsx to pass msalInstance for auth Backend: - Add python-jose and httpx dependencies for JWT verification - Create auth_service.py with Azure AD JWKS fetching and token verification - Create auth.py FastAPI dependency for protected REST endpoints - Update main.py to verify tokens on WebSocket and protect /info endpoint - Add AZURE_TENANT_ID, AZURE_CLIENT_ID, DISABLE_AUTH to config 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
23 lines
714 B
Text
23 lines
714 B
Text
# Gemini API Configuration
|
|
# Get your API key from: https://aistudio.google.com/app/apikey
|
|
GEMINI_API_KEY=your_gemini_api_key_here
|
|
|
|
# Reference Documents Path (optional)
|
|
# Defaults to ../reference_docs relative to backend/
|
|
# REFERENCE_DOCS_PATH=/path/to/reference_docs
|
|
|
|
# CORS Configuration
|
|
# Comma-separated list of allowed origins
|
|
CORS_ORIGINS=http://localhost:3000
|
|
|
|
# Server Configuration
|
|
HOST=0.0.0.0
|
|
PORT=8000
|
|
|
|
# Azure AD Configuration (for Microsoft SSO token verification)
|
|
# Get these from your Azure AD app registration
|
|
AZURE_TENANT_ID=your_azure_tenant_id_here
|
|
AZURE_CLIENT_ID=your_azure_client_id_here
|
|
|
|
# Development only - set to "true" to disable authentication (NOT for production)
|
|
DISABLE_AUTH=false
|