archivebox.api.auth

Module Contents

Classes

HeaderTokenAuth

Allow authenticating by passing X-API-Key=xyz as a request header

BearerTokenAuth

Allow authenticating by passing Bearer=xyz as a request header

QueryParamTokenAuth

Allow authenticating by passing api_key=xyz as a GET/POST query parameter

UsernameAndPasswordAuth

Allow authenticating by passing username & password via HTTP Basic Authentication (not recommended)

DjangoSessionAuth

Allow authenticating with existing Django session cookies (same-origin only).

Functions

get_or_create_api_token

auth_using_token

Given an API token string, check if a corresponding non-expired APIToken exists, and return its user

auth_using_password

Given a username and password, check if they are valid and return the corresponding user

_require_superuser

Data

API_AUTH_METHODS

API

archivebox.api.auth.get_or_create_api_token(user: django.contrib.auth.models.User | None)[source]
archivebox.api.auth.auth_using_token(token: str | None, request: django.http.HttpRequest | None = None) django.contrib.auth.models.User | None[source]

Given an API token string, check if a corresponding non-expired APIToken exists, and return its user

archivebox.api.auth.auth_using_password(username: str | None, password: str | None, request: django.http.HttpRequest | None = None) django.contrib.auth.models.User | None[source]

Given a username and password, check if they are valid and return the corresponding user

archivebox.api.auth._require_superuser(user: django.contrib.auth.models.User | None, request: django.http.HttpRequest, auth_method: str) django.contrib.auth.models.User | None[source]
class archivebox.api.auth.HeaderTokenAuth[source]

Bases: ninja.security.APIKeyHeader

Allow authenticating by passing X-API-Key=xyz as a request header

param_name[source]

‘X-ArchiveBox-API-Key’

authenticate(request: django.http.HttpRequest, key: str | None) django.contrib.auth.models.User | None[source]
class archivebox.api.auth.BearerTokenAuth[source]

Bases: ninja.security.HttpBearer

Allow authenticating by passing Bearer=xyz as a request header

authenticate(request: django.http.HttpRequest, token: str) django.contrib.auth.models.User | None[source]
class archivebox.api.auth.QueryParamTokenAuth[source]

Bases: ninja.security.APIKeyQuery

Allow authenticating by passing api_key=xyz as a GET/POST query parameter

param_name[source]

‘api_key’

authenticate(request: django.http.HttpRequest, key: str | None) django.contrib.auth.models.User | None[source]
class archivebox.api.auth.UsernameAndPasswordAuth[source]

Bases: ninja.security.HttpBasicAuth

Allow authenticating by passing username & password via HTTP Basic Authentication (not recommended)

authenticate(request: django.http.HttpRequest, username: str, password: str) django.contrib.auth.models.User | None[source]
class archivebox.api.auth.DjangoSessionAuth[source]

Allow authenticating with existing Django session cookies (same-origin only).

__call__(request: django.http.HttpRequest) django.contrib.auth.models.User | None[source]
authenticate(request: django.http.HttpRequest, **kwargs) django.contrib.auth.models.User | None[source]
archivebox.api.auth.API_AUTH_METHODS[source]

None