Skip to main content

Configuration

from nexfetch_auth import nexfetch_auth
from nexfetch_auth.core.config import EmailPasswordConfig, RateLimitConfig, SessionConfig
from nexfetch_auth.core.email import SmtpEmailProvider
from nexfetch_auth.db.adapters.sqlalchemy import sqlalchemy_adapter
from nexfetch_auth.oauth.providers.github import github

auth = await nexfetch_auth(
secret="your-secret-key-32-chars-minimum",
database=await sqlalchemy_adapter("postgresql+asyncpg://..."),
trusted_origins=["http://localhost:3000", "https://myapp.com"],
oauth_providers=[github(client_id="...", client_secret="...")],
email_and_password=EmailPasswordConfig(min_password_length=12),
session=SessionConfig(max_age=60 * 60 * 24 * 30, cookie_secure=True),
rate_limit=RateLimitConfig(window=60, max_requests=10),
email_provider=SmtpEmailProvider(host="smtp.gmail.com", port=587, ...),
)

Parameters

ParameterTypeDefaultDescription
secretstr(required)Secret key for signing tokens
databaseDBAdapter | NoneNone (memory)Database adapter
trusted_originslist[str][]CORS trusted origins
oauth_providerslist[OAuthProvider][]OAuth providers
email_and_passwordEmailPasswordConfig | NoneEmailPasswordConfig()Email/password config
sessionSessionConfig | NoneSessionConfig()Session config
rate_limitRateLimitConfig | NoneRateLimitConfig()Rate limit config
email_providerEmailProvider | NoneConsoleEmailProvider()Email sending
pluginslist[NexfetchAuthPlugin][]Custom plugins