mirror of
https://github.com/fastapi-users/fastapi-users.git
synced 2025-08-15 03:04:27 +08:00
Native model and generic ID (#971)
* Use a generic Protocol model for User instead of Pydantic
* Remove UserDB Pydantic schema
* Harmonize schema variable naming to avoid confusions
* Revamp OAuth account model management
* Revamp AccessToken DB strategy to adopt generic model approach
* Make ID a generic instead of forcing UUIDs
* Improve generic typing
* Improve Strategy typing
* Tweak base DB typing
* Don't set Pydantic schemas on FastAPIUsers class: pass it directly on router creation
* Add IntegerIdMixin and export related classes
* Start to revamp doc for V10
* Revamp OAuth documentation
* Fix code highlights
* Write the 9.x.x ➡️ 10.x.x migration doc
* Fix pyproject.toml
This commit is contained in:
@ -12,7 +12,7 @@ from fastapi_users.router.common import ErrorCode, ErrorModel
|
||||
|
||||
def get_auth_router(
|
||||
backend: AuthenticationBackend,
|
||||
get_user_manager: UserManagerDependency[models.UC, models.UD],
|
||||
get_user_manager: UserManagerDependency[models.UP, models.ID],
|
||||
authenticator: Authenticator,
|
||||
requires_verification: bool = False,
|
||||
) -> APIRouter:
|
||||
@ -51,8 +51,8 @@ def get_auth_router(
|
||||
async def login(
|
||||
response: Response,
|
||||
credentials: OAuth2PasswordRequestForm = Depends(),
|
||||
user_manager: BaseUserManager[models.UC, models.UD] = Depends(get_user_manager),
|
||||
strategy: Strategy[models.UC, models.UD] = Depends(backend.get_strategy),
|
||||
user_manager: BaseUserManager[models.UP, models.ID] = Depends(get_user_manager),
|
||||
strategy: Strategy[models.UP, models.ID] = Depends(backend.get_strategy),
|
||||
):
|
||||
user = await user_manager.authenticate(credentials)
|
||||
|
||||
@ -82,8 +82,8 @@ def get_auth_router(
|
||||
)
|
||||
async def logout(
|
||||
response: Response,
|
||||
user_token: Tuple[models.UD, str] = Depends(get_current_user_token),
|
||||
strategy: Strategy[models.UC, models.UD] = Depends(backend.get_strategy),
|
||||
user_token: Tuple[models.UP, str] = Depends(get_current_user_token),
|
||||
strategy: Strategy[models.UP, models.ID] = Depends(backend.get_strategy),
|
||||
):
|
||||
user, token = user_token
|
||||
return await backend.logout(strategy, user, token, response)
|
||||
|
Reference in New Issue
Block a user