61 lines
1.3 KiB
Python
61 lines
1.3 KiB
Python
from typing import Literal
|
|
|
|
from pydantic import BaseModel, Field, PositiveInt
|
|
|
|
|
|
class AccessTokenModel(BaseModel):
|
|
access_token: str
|
|
refresh_token: str
|
|
state: str
|
|
id_token: str
|
|
token_type: Literal['Bearer']
|
|
expires_in: PositiveInt
|
|
|
|
|
|
class IDTokenACRModel(BaseModel):
|
|
twoAF: str = Field(alias='2fa')
|
|
|
|
|
|
class IDTokenSBJModel(BaseModel):
|
|
lvl: str = Field(alias='urn:esia:sbj:lvl')
|
|
typ: str = Field(alias='urn:esia:sbj:typ')
|
|
is_tru: bool = Field(alias='urn:esia:sbj:is_tru')
|
|
oid: int = Field(alias='urn:esia:sbj:oid')
|
|
name: str = Field(alias='urn:esia:sbj:nam')
|
|
|
|
|
|
class IDTokenModel(BaseModel):
|
|
aud: str
|
|
sub: int
|
|
nbf: int
|
|
amr: str
|
|
auth_time: int
|
|
exp: int
|
|
iat: int
|
|
iss: str
|
|
# acr: IDTokenACRModel
|
|
urn_esia_amd: str = Field(alias='urn:esia:amd')
|
|
urn_esia_sid: str = Field(alias='urn:esia:sid')
|
|
urn_esia_sbj: IDTokenSBJModel = Field(alias='urn:esia:sbj')
|
|
|
|
|
|
class UserInfoModel(BaseModel):
|
|
stateFacts: list[str]
|
|
firstName: str
|
|
lastName: str
|
|
middleName: str
|
|
# birthDate: str
|
|
# gender: str
|
|
trusted: bool
|
|
# citizenship: str
|
|
snils: str
|
|
inn: int
|
|
updatedOn: int
|
|
rfgUOperatorCheck: bool
|
|
status: str
|
|
verifying: bool
|
|
rIdDoc: int
|
|
containsUpCfmCode: bool
|
|
kidAccCreatedByParent: bool
|
|
eTag: str
|