Skip to content

Commit 23a5ec5

Browse files
committed
feat: delete token after retrieval
1 parent 587d5c4 commit 23a5ec5

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

backend/auth/auth_connector.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ def generate_device_code(self) -> str:
6666

6767
def generate_user_code(self) -> str:
6868
"""Generate a user-friendly code in format ABC-420."""
69-
7069
letters = ''.join(secrets.choice(string.ascii_uppercase) for _ in range(3))
7170
digits = ''.join(secrets.choice(string.digits) for _ in range(3))
7271
return f"{letters}-{digits}"
@@ -197,6 +196,8 @@ def get_device_code_poll_status(self, device_code: str) -> Optional[Dict[str, An
197196
- expired: {"status": "expired", "error": "device_code_expired"}
198197
- denied: {"status": "denied", "error": "user_denied_authorization"}
199198
- not_found: None (treat as expired)
199+
200+
Tokens are deleted after retrieval (one-time use).
200201
"""
201202
entry = self.get_device_code_entry(device_code)
202203

@@ -209,12 +210,14 @@ def get_device_code_poll_status(self, device_code: str) -> Optional[Dict[str, An
209210
status = entry.get("status", "pending")
210211

211212
if status == "authorized":
212-
return {
213+
result = {
213214
"status": "authorized",
214215
"user_id": entry.get("user_id"),
215216
"id_token": entry.get("id_token"),
216217
"refresh_token": entry.get("refresh_token")
217218
}
219+
self._delete_session(device_code, entry)
220+
return result
218221
elif status == "denied":
219222
return {
220223
"status": "denied",
@@ -244,10 +247,7 @@ def delete_device_code(self, device_code: str) -> bool:
244247
return False
245248

246249
def verify_firebase_token(self, id_token: str) -> Optional[Dict[str, Any]]:
247-
"""Verify Firebase ID token from website/plugin.
248-
249-
Note: Firebase Admin SDK is initialized at server startup in http_server.py.
250-
"""
250+
"""Verify Firebase ID token from website/plugin."""
251251
try:
252252
decoded_token = auth.verify_id_token(id_token)
253253
return {

0 commit comments

Comments
 (0)