mirror of
https://github.com/fastapi-users/fastapi-users.git
synced 2025-11-03 22:22:06 +08:00
* Add routes for user activation (#403) * Add routes for user activation Generate a token after creating the user in register route, passing to `activation_callback`, if `activation_callback` supplied Create new `/activate` route that will verify the token and activate the user Add new error codes to `fastapi_users/router/common.py` Update documentation Add tests Co-authored-by: Mark Todd <markpeter.todd@hotmail.co.uk> * Rework routes for user activation * Separate verification logic and token generation into `/fastapi_users/router/verify.py`, with per-route callbacks for custom behaviour * Return register router to original state * Added `is_verified` property to user models * Added `requires_verification` argument to `get_users_router`and `get_auth_router` * Additional dependencies added for verification in `fastapi_users/authentication/__init__.py` * Update tests for new behaviour * Update `README.md` to describe a workaround for possible problems during testing, by exceeding ulimit file descriptor limit Co-authored-by: Mark Todd <markpeter.todd@hotmail.co.uk> * Restored docs to original state. * All other modifications reqested added Kebab-case on request-verify-token SECRET now used as test string Other minor changes Co-authored-by: Mark Todd <markpeter.todd@hotmail.co.uk> * Embed token in body in verify route * Reorganize checks in verify route and add unit test * Ignore coverage on Protocol classes * Tweak verify_user function to take full user in parameter * Improve unit tests structure regarding parametrized test client * Make after_verification_request optional to be more consistent with other routers * Tweak status codes on verify routes * Write documentation for verification feature * Add not released warning on verify docs Co-authored-by: Edd Salkield <edd@salkield.uk> Co-authored-by: Mark Todd <markpeter.todd@hotmail.co.uk>
1.8 KiB
1.8 KiB
Routers
We're almost there! The last step is to configure the FastAPIUsers object that will wire the database adapter, the authentication classes and let us generate the actual API routes.
Configure FastAPIUsers
Configure FastAPIUsers object with all the elements we defined before. More precisely:
db: Database adapter instance.auth_backends: List of authentication backends. See Authentication.user_model: Pydantic model of a user.user_create_model: Pydantic model for creating a user.user_update_model: Pydantic model for updating a user.user_db_model: Pydantic model of a DB representation of a user.
from fastapi_users import FastAPIUsers
fastapi_users = FastAPIUsers(
user_db,
auth_backends,
User,
UserCreate,
UserUpdate,
UserDB,
)
Available routers
This helper class will let you generate useful routers to setup the authentication system. Each of them is optional, so you can pick only the one that you are interested in! Here are the routers provided:
- Auth router: Provides
/loginand/logoutroutes for a given authentication backend. - Register router: Provides
/registerroutes to allow a user to create a new account. - Reset password router: Provides
/forgot-passwordand/reset-passwordroutes to allow a user to reset its password. - Verify router: Provides
/request-verify-tokenand/verifyroutes to manage user e-mail verification. - Users router: Provides routes to manage users.
- OAuth router: Provides routes to perform an OAuth authentication against a service provider (like Google or Facebook).
You should check out each of them to understand how to use them.