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, ...),
)