Files
ForbiddenStarsApp/backend/app/auth/dev_stub.py

24 lines
878 B
Python

"""Dev-провайдер: вход без секрета по нику/идентификатору (только не-production)."""
from __future__ import annotations
from typing import Any
from app.auth.provider import AuthProvider, ExternalIdentity
from app.core.errors import ValidationError
class DevStubProvider(AuthProvider):
name = "stub"
def authenticate(self, payload: dict[str, Any]) -> ExternalIdentity:
nickname = (payload.get("nickname") or "").strip()
external_id = str(payload.get("external_id") or nickname).strip()
if not external_id:
raise ValidationError("Укажите никнейм для входа.")
return ExternalIdentity(
provider=self.name,
external_id=external_id,
suggested_nickname=nickname or external_id,
raw=dict(payload),
)