Skip to content

Server Events

Register hooks with @auth.on("event_name") or auth.add_hook("event_name", callback).


Fired when a new user is created (via signup, OAuth, or create_user()).

FieldType
user_idUUID
emailstr
namestr | None
providerstr"email", "google", "github", "magic_link", "email_otp", or any generic provider name
timestampdatetime

Fired on successful authentication.

FieldType
user_idUUID
emailstr
providerstr
ip_addressstr | None
user_agentstr | None
timestampdatetime

Fired when login fails.

FieldType
emailstr
reasonstr — e.g., "invalid_credentials", "user_banned"
ip_addressstr | None
user_agentstr | None
timestampdatetime

Fired when a user logs out.

FieldType
user_idUUID | None
timestampdatetime

Fired when a refresh token is used to get new tokens.

FieldType
user_idUUID
ip_addressstr | None
user_agentstr | None
timestampdatetime

Fired when an OAuth account is linked to an existing user (email match).

FieldType
user_idUUID
emailstr
providerstr
timestampdatetime

Fired when a role is assigned.

FieldType
user_idUUID
rolestr
timestampdatetime

Fired when a role is removed.

FieldType
user_idUUID
rolestr
timestampdatetime

Fired when a user’s profile fields are updated via update_user().

FieldType
user_idUUID
fieldslist[str] — names of updated fields (e.g., ["name", "phone"])
timestampdatetime

Fired when a user is banned.

FieldType
user_idUUID
timestampdatetime

Fired when a user is unbanned.

FieldType
user_idUUID
timestampdatetime

Fired when sessions are revoked.

FieldType
user_idUUID
session_idUUID | NoneNone if revoke_all
revoke_allbool
timestampdatetime

Fired when a new signing key is created.

FieldType
old_kidstr
new_kidstr
timestampdatetime

Fired when create_password_reset_token() is called for a valid user.

FieldType
user_idUUID
emailstr
timestampdatetime

Fired when a password is successfully reset via token.

FieldType
user_idUUID
timestampdatetime

Fired when a password is changed via change_password().

FieldType
user_idUUID
timestampdatetime

Fired when a passwordless user sets their initial password via set_password().

FieldType
user_idUUID
timestampdatetime

Fired when create_email_verification_token() is called for a valid user.

FieldType
user_idUUID
emailstr
tokenstr — raw token for delivery
timestampdatetime

Fired when a user’s email is successfully verified — via verify_email(), magic link, email OTP, or programmatically via create_user(email_verified=True) / update_user(email_verified=True). Not fired if the user is already verified.

FieldType
user_idUUID
emailstr
timestampdatetime

Fired when create_magic_link_token() is called for a valid user.

FieldType
user_idUUID
emailstr
tokenstr — raw token for delivery
timestampdatetime

Fired when a user logs in via magic link.

FieldType
user_idUUID
emailstr
timestampdatetime

Fired when create_email_otp() is called for a valid user.

FieldType
user_idUUID
emailstr
codestr — raw 6-digit code for delivery
timestampdatetime

Fired when a user logs in via email OTP.

FieldType
user_idUUID
emailstr
timestampdatetime

Fired when a user is deleted via delete_user().

FieldType
user_idUUID
emailstr
timestampdatetime

Fired when a request is rejected due to rate limiting.

FieldType
endpointstr — e.g., "login", "signup", "refresh"
ip_addressstr | None
emailstr | None — present for email-based limits
limitstr — the limit that was exceeded (e.g., "5/min")
key_typestr"ip" or "email"
timestampdatetime