Skip to content

Models

Inherit this mixin to give your SQLAlchemy user model the columns crudauth expects. If your table differs, satisfy the logical contract with column_map= instead.

crudauth.models.AuthUserMixin

Declarative mixin supplying the full set of columns crudauth relies on.

Note

token_version is a monotonic credential epoch: bearer tokens embed it as the ver claim and a password reset bumps it, so a reset rejects every outstanding bearer token. See BearerTransport.

Example
class User(Base, AuthUserMixin):
    __tablename__ = "users"
    full_name: Mapped[str | None] = mapped_column(default=None)