mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-04-30 05:48:38 +00:00
Port RFC-001 authentication core from PR #1728: - JWT token handling (create_access_token, decode_token, TokenPayload) - Password hashing (bcrypt) with verify_password - SQLite UserRepository with base interface - Provider Factory pattern (LocalAuthProvider) - CLI reset_admin tool - Auth-specific errors (AuthErrorCode, TokenError, AuthErrorResponse) Deps: - bcrypt>=4.0.0 - pyjwt>=2.9.0 - email-validator>=2.0.0 - backend/uv.toml pins public PyPI index Tests: 12 pure unit tests (test_auth_config.py, test_auth_errors.py). Scope note: authz.py, test_auth.py, and test_auth_type_system.py are deferred to commit 2 because they depend on middleware and deps wiring that is not yet in place. Commit 1 stays "pure new files only" as the spec mandates.
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
"""Authentication module for DeerFlow.
|
|
|
|
This module provides:
|
|
- JWT-based authentication
|
|
- Provider Factory pattern for extensible auth methods
|
|
- UserRepository interface for storage backends (SQLite)
|
|
"""
|
|
|
|
from app.gateway.auth.config import AuthConfig, get_auth_config, set_auth_config
|
|
from app.gateway.auth.errors import AuthErrorCode, AuthErrorResponse, TokenError
|
|
from app.gateway.auth.jwt import TokenPayload, create_access_token, decode_token
|
|
from app.gateway.auth.local_provider import LocalAuthProvider
|
|
from app.gateway.auth.models import User, UserResponse
|
|
from app.gateway.auth.password import hash_password, verify_password
|
|
from app.gateway.auth.providers import AuthProvider
|
|
from app.gateway.auth.repositories.base import UserRepository
|
|
|
|
__all__ = [
|
|
# Config
|
|
"AuthConfig",
|
|
"get_auth_config",
|
|
"set_auth_config",
|
|
# Errors
|
|
"AuthErrorCode",
|
|
"AuthErrorResponse",
|
|
"TokenError",
|
|
# JWT
|
|
"TokenPayload",
|
|
"create_access_token",
|
|
"decode_token",
|
|
# Password
|
|
"hash_password",
|
|
"verify_password",
|
|
# Models
|
|
"User",
|
|
"UserResponse",
|
|
# Providers
|
|
"AuthProvider",
|
|
"LocalAuthProvider",
|
|
# Repository
|
|
"UserRepository",
|
|
]
|