为未来对接集团 IdP(OIDC / SAML / LDAP / 飞书 / 钉钉 / 企微)留扩展点, 同时落地 auth_sessions 表(V2 替代 user_sessions)。 变更 - models.py: 新增 auth_sessions + auth_meta 表,V1→V2 数据回填 - providers/base.py: AuthProvider Protocol 接口契约 - providers/local.py: LocalAuthProvider 默认实现(封装 SQLite + bcrypt) - providers/oidc_stub.py: StubOIDCProvider 占位(NotImplementedError) - providers/__init__.py: get_auth_provider DI 工厂(lru_cache 单例) - providers/exceptions.py: AuthProviderError / InvalidCredentials / ProviderNotImplemented - providers/user.py: Provider-agnostic User 值对象 - tests/unit/auth/: 37 个测试覆盖 Protocol / DI / Local / OIDC 行为 auth_sessions.auth_provider 字段记录登录来源(local / oidc-stub / 未来 oidc-keycloak / saml / ldap),未来切 IdP 时审计可溯源。 测试: 37 passed (providers) + 62 passed (auth 全集) + ruff check clean |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_base.py | ||
| test_local.py | ||
| test_oidc_stub.py | ||