Source code for annofabapi.credentials
from dataclasses import dataclass
from typing import Protocol
[docs]
class HasAuthToken(Protocol):
@property
def auth_token(self) -> str: ...
[docs]
@dataclass(frozen=True)
class IdPass:
user_id: str
password: str
[docs]
@dataclass(frozen=True)
class Pat(HasAuthToken):
"""Personal Access Token"""
token: str
@property
def auth_token(self) -> str:
return f"Bearer {self.token}"
[docs]
@dataclass(frozen=True)
class Tokens(HasAuthToken):
"""IdPassを元にログインしたあとに取得されるトークン情報"""
id_token: str
access_token: str
refresh_token: str
@property
def auth_token(self) -> str:
return self.id_token
def to_dict(self) -> dict[str, str]:
return {
"id_token": self.id_token,
"access_token": self.access_token,
"refresh_token": self.refresh_token,
}
@staticmethod
def from_dict(d: dict[str, str]) -> "Tokens":
return Tokens(id_token=d["id_token"], access_token=d["access_token"], refresh_token=d["refresh_token"])