summaryrefslogtreecommitdiffstats
path: root/python/fatcat_web/auth.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/fatcat_web/auth.py')
-rw-r--r--python/fatcat_web/auth.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/python/fatcat_web/auth.py b/python/fatcat_web/auth.py
index 4fe85770..2b3f5871 100644
--- a/python/fatcat_web/auth.py
+++ b/python/fatcat_web/auth.py
@@ -1,4 +1,5 @@
from collections import namedtuple
+from typing import Any, Dict, Optional
import fatcat_openapi_client
import pymacaroons
@@ -6,10 +7,10 @@ import requests
from flask import abort, flash, redirect, render_template, session
from flask_login import UserMixin, login_user, logout_user
-from fatcat_web import Config, api, app, login_manager, priv_api
+from fatcat_web import AnyResponse, Config, api, app, login_manager, priv_api
-def handle_logout():
+def handle_logout() -> None:
logout_user()
for k in ("editor", "api_token"):
if k in session:
@@ -17,7 +18,7 @@ def handle_logout():
session.clear()
-def handle_token_login(token):
+def handle_token_login(token: str) -> AnyResponse:
try:
m = pymacaroons.Macaroon.deserialize(token)
except pymacaroons.exceptions.MacaroonDeserializationException:
@@ -51,7 +52,7 @@ def handle_token_login(token):
# This will need to login/signup via fatcatd API, then set token in session
-def handle_oauth(remote, token, user_info):
+def handle_oauth(remote: Any, token: Optional[str], user_info: Dict[str, Any]) -> AnyResponse:
if user_info:
# fetch api login/signup using user_info
# ISS is basically the API url (though more formal in OIDC)
@@ -98,7 +99,7 @@ def handle_oauth(remote, token, user_info):
raise Exception("didn't receive OAuth user_info")
-def handle_ia_xauth(email, password):
+def handle_ia_xauth(email: str, password: str) -> AnyResponse:
resp = requests.post(
Config.IA_XAUTH_URI,
params={"op": "authenticate"},
@@ -153,7 +154,7 @@ def handle_ia_xauth(email, password):
return handle_oauth(remote, None, oauth_info)
-def handle_wmoauth(username):
+def handle_wmoauth(username: str) -> AnyResponse:
# pass off "as if" we did OAuth successfully
FakeOAuthRemote = namedtuple("FakeOAuthRemote", ["name", "OAUTH_CONFIG"])
remote = FakeOAuthRemote(
@@ -169,7 +170,7 @@ def handle_wmoauth(username):
@login_manager.user_loader
-def load_user(editor_id):
+def load_user(editor_id: str) -> UserMixin:
# looks for extra info in session, and updates the user object with that.
# If session isn't loaded/valid, should return None
if (not session.get("editor")) or (not session.get("api_token")):