aboutsummaryrefslogtreecommitdiff
path: root/jb/api
diff options
context:
space:
mode:
authorMax Nanis2026-09-10 16:59:43 -0700
committerMax Nanis2026-09-10 16:59:43 -0700
commit0ac38066402762dc5fa24f2ffa2170681a6eddb1 (patch)
tree923ea3f9ccd7adaaac89d20074d7ed6af532260e /jb/api
parentcb098c80351727055ce982b9c2631aab7277b772 (diff)
downloadamt-jb-0ac38066402762dc5fa24f2ffa2170681a6eddb1.tar.gz
amt-jb-0ac38066402762dc5fa24f2ffa2170681a6eddb1.zip
http/managers/models green.
Diffstat (limited to 'jb/api')
-rw-r--r--jb/api/magic_token.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/jb/api/magic_token.py b/jb/api/magic_token.py
index 5f78996..7b6c1aa 100644
--- a/jb/api/magic_token.py
+++ b/jb/api/magic_token.py
@@ -3,7 +3,7 @@ import secrets
from fastapi import HTTPException, status
-from jb.decorators import REDIS
+from jb.decorators import get_redis
from jb.models.auth import AmtAccountLink
MAGIC_TOKEN_PREFIX = "auth:magic:"
@@ -25,7 +25,8 @@ def create_magic_token(user_email: str) -> str:
raise ValueError("user_email must not be empty")
token = secrets.token_urlsafe(32)
- REDIS.set(
+ redis_client = get_redis()
+ redis_client.set(
redis_token_key(token),
user_email,
ex=MAGIC_TOKEN_TTL,
@@ -34,7 +35,8 @@ def create_magic_token(user_email: str) -> str:
def consume_magic_token(token: str) -> str:
- user_email = REDIS.getdel(redis_token_key(token))
+ redis_client = get_redis()
+ user_email = redis_client.getdel(redis_token_key(token))
if user_email is None:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
@@ -45,12 +47,13 @@ def consume_magic_token(token: str) -> str:
def create_amt_account_link_token(email: str, amt_worker_id: str) -> str:
"""Bind an email and AMT worker ID to an opaque, short-lived token."""
+ redis_client = get_redis()
data = AmtAccountLink(
email=email,
amt_worker_id=amt_worker_id,
)
token = secrets.token_urlsafe(32)
- REDIS.set(
+ redis_client.set(
redis_token_key(token, AMT_ACCOUNT_LINK_TOKEN_PREFIX),
data.model_dump_json(),
ex=MAGIC_TOKEN_TTL,
@@ -60,7 +63,10 @@ def create_amt_account_link_token(email: str, amt_worker_id: str) -> str:
def consume_amt_account_link_token(token: str) -> AmtAccountLink:
"""Atomically consume and validate an AMT account-link token."""
- raw_data = REDIS.getdel(redis_token_key(token, AMT_ACCOUNT_LINK_TOKEN_PREFIX))
+ redis_client = get_redis()
+ raw_data = redis_client.getdel(
+ redis_token_key(token, AMT_ACCOUNT_LINK_TOKEN_PREFIX)
+ )
if raw_data is None:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,