Auth Strategies¶
OAuth2¶
oauth2
¶
OAuth2 strategy with support for Google, GitHub, and custom providers.
OAuth2Strategy
¶
Handles OAuth2 authorization code flow for external identity providers.
Source code in libs/ninja-auth/src/ninja_auth/strategies/oauth2.py
get_authorization_url
¶
Build the URL to redirect the user to for OAuth2 authorization.
Source code in libs/ninja-auth/src/ninja_auth/strategies/oauth2.py
exchange_code
async
¶
Exchange an authorization code for tokens.
Source code in libs/ninja-auth/src/ninja_auth/strategies/oauth2.py
get_userinfo
async
¶
Fetch user profile from the provider's userinfo endpoint.
Source code in libs/ninja-auth/src/ninja_auth/strategies/oauth2.py
authenticate_with_code
async
¶
authenticate_with_code(code: str) -> UserContext
Full OAuth2 flow: exchange code -> fetch userinfo -> return context.
Source code in libs/ninja-auth/src/ninja_auth/strategies/oauth2.py
Bearer (JWT)¶
bearer
¶
JWT bearer token validation strategy.
BearerStrategy
¶
Validates JWT bearer tokens and extracts user context.
Source code in libs/ninja-auth/src/ninja_auth/strategies/bearer.py
authenticate
async
¶
authenticate(request: Request) -> UserContext | None
Extract and validate a JWT from the Authorization header.
Source code in libs/ninja-auth/src/ninja_auth/strategies/bearer.py
validate_token
¶
validate_token(token: str) -> UserContext | None
Decode and validate a JWT, returning UserContext on success.
Source code in libs/ninja-auth/src/ninja_auth/strategies/bearer.py
API Key¶
apikey
¶
API key validation strategy for service-to-service auth.
ApiKeyStrategy
¶
Validates API keys from a configured header against known keys.
Source code in libs/ninja-auth/src/ninja_auth/strategies/apikey.py
authenticate
async
¶
authenticate(request: Request) -> UserContext | None
Check the request header for a valid API key.
Source code in libs/ninja-auth/src/ninja_auth/strategies/apikey.py
validate_key
¶
validate_key(api_key: str) -> UserContext | None
Validate an API key against configured keys using constant-time comparison.
Source code in libs/ninja-auth/src/ninja_auth/strategies/apikey.py
Built-in Identity¶
identity
¶
Built-in identity strategy: user registration, login, password hashing.
IdentityStrategy
¶
Manages local user accounts with password hashing and JWT session tokens.
Source code in libs/ninja-auth/src/ninja_auth/strategies/identity.py
hash_password
¶
verify_password
¶
register
¶
register(
email: str,
password: str,
roles: list[str] | None = None,
) -> UserContext
Register a new user account.
Source code in libs/ninja-auth/src/ninja_auth/strategies/identity.py
login
¶
login(email: str, password: str) -> UserContext | None
Authenticate a user by email and password.
Source code in libs/ninja-auth/src/ninja_auth/strategies/identity.py
issue_token
¶
issue_token(user_ctx: UserContext) -> str
Issue a JWT session token for an authenticated user.
Source code in libs/ninja-auth/src/ninja_auth/strategies/identity.py
validate_token
¶
validate_token(token: str) -> UserContext | None
Validate a session token and return user context.