Skip to content

Commit

Permalink
feat: allow custom query parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
dartt0n committed Jul 21, 2024
1 parent 16dc382 commit e35bd3e
Showing 1 changed file with 11 additions and 17 deletions.
28 changes: 11 additions & 17 deletions src/adapter/external/auth/telegram.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,22 +35,6 @@ class TgOauthLoginCallback(BaseModel):
photo_url: str | None
hash: str

__field_order__ = [
"auth_date",
"first_name",
"id",
"last_name",
"photo_url",
"username",
]

def to_data_string(self) -> str:
data_string = ""
for field in self.__field_order__:
data_string += f"{field}={getattr(self, field, "") or ""}\n"

return data_string

def to_telegram_ordered_dict(self) -> OrderedDict:
data = OrderedDict(
id=self.id,
Expand Down Expand Up @@ -102,10 +86,20 @@ def __init__(self, secret_token: str, jwt_secret: str, service: UserService):
self.__secret_token = secret_token
self.__jwt_secret = jwt_secret
self.__service = service
self.__verify_keys = [
"auth_date",
"first_name",
"id",
"last_name",
"photo_url",
"username",
]

def _validate_hash(self, data: Any) -> bool:
init_data = sorted(parse_qsl(urlencode(data)))
data_check_string = "\n".join(f"{k}={v}" for k, v in init_data if k != "hash")
data_check_string = "\n".join(
f"{k}={v}" for k, v in init_data if k in self.__verify_keys
)
hash_ = data["hash"]

secret_key = sha256(self.__secret_token.encode())
Expand Down

0 comments on commit e35bd3e

Please sign in to comment.