"""Dev-провайдер: вход без секрета по нику/идентификатору (только development).""" 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), )