2.5 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	Verify router
This router provides routes to manage user email verification. Check the routes usage to learn how to use them.
!!! success "👏👏👏" A big thank you to Edd Salkield and Mark Todd who worked hard on this feature!
Setup
from fastapi import FastAPI
from fastapi_users import FastAPIUsers
fastapi_users = FastAPIUsers(
    user_db,
    auth_backends,
    User,
    UserCreate,
    UserUpdate,
    UserDB,
)
app = FastAPI()
app.include_router(
    fastapi_users.get_verify_router("SECRET"),
    prefix="/auth",
    tags=["auth"],
)
Parameters:
verification_token_secret: Secret to encode verify token.verification_token_lifetime_seconds: Lifetime of verify token. Defaults to 3600.after_verification_request: Optional function called after a successful verify request. See below.after_verification: Optional function called after a successful verification. See below.
After verification request
You can provide a custom function to be called after a successful verification request. It is called with three arguments:
- The user for which the verification has been requested.
 - A ready-to-use JWT token that will be accepted by the verify route.
 - The original 
Requestobject. 
Typically, you'll want to send an e-mail with the link (and the token) that allows the user to verify their e-mail.
You can define it as an async or standard method.
Example:
def after_verification_request(user: UserDB, token: str, request: Request):
    print(f"Verification requested for user {user.id}. Verification token: {token}")
app.include_router(
    fastapi_users.get_verify_router("SECRET", after_verification_request=after_verification_request),
    prefix="/auth",
    tags=["auth"],
)
After verification
You can provide a custom function to be called after a successful user verification. It is called with two arguments:
- The user that has been verified.
 - The original 
Requestobject. 
This may be useful if you wish to send another e-mail or store this information in a data analytics or customer success platform.
You can define it as an async or standard method.
Example:
def after_verification(user: UserDB, request: Request):
    print(f"{user.id} is now verified.")
app.include_router(
    fastapi_users.get_verify_router("SECRET", after_verification=after_verification),
    prefix="/auth",
    tags=["auth"],
)