Coverage for src / idx_api / routers / auth.py: 92%
13 statements
« prev ^ index » next coverage.py v7.13.1, created at 2025-12-28 11:09 -0700
« prev ^ index » next coverage.py v7.13.1, created at 2025-12-28 11:09 -0700
1"""
2Auth router - API key and OIDC verification endpoints
3"""
5from fastapi import APIRouter, Depends
6from pydantic import BaseModel
8from idx_api.auth import RequiredUser
10router = APIRouter()
13class VerifyResponse(BaseModel):
14 """API key verification response"""
16 valid: bool
17 role: str
18 brokerage_id: int | None = None
19 broker_id: int | None = None # Broker contact ID
20 agent_id: int | None = None
23@router.get("/verify", response_model=VerifyResponse)
24async def verify_api_key(user: RequiredUser):
25 """
26 Verify the provided API key or OIDC token.
28 Returns user information if authentication is valid.
29 This endpoint is used by the frontend to validate credentials.
30 """
31 return VerifyResponse(
32 valid=True,
33 role=user.role,
34 brokerage_id=user.brokerage_id,
35 broker_id=user.broker_id,
36 agent_id=user.agent_id,
37 )