Add /api/auth/status endpoint for JavaScript compatibility
This commit is contained in:
@@ -343,6 +343,31 @@ async def logout(current_user: Dict = Depends(get_current_user)) -> Dict[str, An
|
||||
"message": "Logged out successfully. Please remove the token from client storage."
|
||||
}
|
||||
|
||||
@app.get("/api/auth/status", response_model=Dict[str, Any], tags=["Authentication"])
|
||||
async def auth_status(request: Request) -> Dict[str, Any]:
|
||||
"""
|
||||
Check authentication status and configuration.
|
||||
|
||||
This endpoint checks if master password is configured and if user is authenticated.
|
||||
"""
|
||||
has_master_password = bool(settings.master_password_hash or settings.master_password)
|
||||
|
||||
# Check if user has valid token
|
||||
authenticated = False
|
||||
try:
|
||||
auth_header = request.headers.get("authorization")
|
||||
if auth_header and auth_header.startswith("Bearer "):
|
||||
token = auth_header.split(" ")[1]
|
||||
payload = verify_jwt_token(token)
|
||||
authenticated = payload is not None
|
||||
except Exception:
|
||||
authenticated = False
|
||||
|
||||
return {
|
||||
"has_master_password": has_master_password,
|
||||
"authenticated": authenticated
|
||||
}
|
||||
|
||||
# Health check endpoint
|
||||
@app.get("/health", response_model=HealthResponse, tags=["System"])
|
||||
async def health_check() -> HealthResponse:
|
||||
|
||||
Reference in New Issue
Block a user