diff options
Diffstat (limited to 'accounts/utils/login.py')
-rw-r--r-- | accounts/utils/login.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/accounts/utils/login.py b/accounts/utils/login.py index 0cd1dc4..64e6ce8 100644 --- a/accounts/utils/login.py +++ b/accounts/utils/login.py @@ -7,14 +7,16 @@ import json import flask_login.login_manager from accounts.app import accounts_app +from typing import Union, Any + class _compact_json: @staticmethod - def loads(payload): + def loads(payload: Union[bytes, str, bytearray]) -> Any: return json.loads(payload) @staticmethod - def dumps(obj, **kwargs): + def dumps(obj: Union[list, dict, tuple], **kwargs): kwargs.setdefault("ensure_ascii", False) kwargs.setdefault("separators", (",", ":")) return json.dumps(obj, **kwargs) @@ -26,7 +28,7 @@ def create_login_manager() -> flask_login.login_manager.LoginManager: login_manager.login_view = 'login.login' @login_manager.user_loader - def load_user(user_id: str): + def load_user(user_id: str) -> LoginManager: try: username, password = parse_userid(user_id) return accounts_app.user_backend.auth(username, password) @@ -37,12 +39,12 @@ def create_login_manager() -> flask_login.login_manager.LoginManager: return login_manager -def create_userid(username: str, password: str): +def create_userid(username: str, password: str) -> bytes: userid = (username, password) return base64_encode(_compact_json.dumps(userid)) -def parse_userid(value: str): +def parse_userid(value: str) -> Any: return _compact_json.loads(base64_decode(value)) |