Spaces:
Running
Running
Update helper/subscriptions.py
Browse files- helper/subscriptions.py +15 -2
helper/subscriptions.py
CHANGED
|
@@ -4,7 +4,7 @@ import json
|
|
| 4 |
import os
|
| 5 |
from datetime import datetime, timezone
|
| 6 |
from pathlib import Path
|
| 7 |
-
|
| 8 |
import psycopg
|
| 9 |
from psycopg.rows import dict_row
|
| 10 |
from supabase import Client, create_client
|
|
@@ -302,12 +302,25 @@ def resolve_jwt_identity(token: str):
|
|
| 302 |
"signed_up": created_at.isoformat() if hasattr(created_at, "isoformat") else None,
|
| 303 |
}
|
| 304 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 305 |
|
| 306 |
async def resolve_api_key_identity(token: str | None):
|
| 307 |
if token is None or token.strip() == "":
|
| 308 |
return None
|
| 309 |
|
| 310 |
-
token_hash =
|
| 311 |
|
| 312 |
row = await execute_query(
|
| 313 |
"""
|
|
|
|
| 4 |
import os
|
| 5 |
from datetime import datetime, timezone
|
| 6 |
from pathlib import Path
|
| 7 |
+
import base64
|
| 8 |
import psycopg
|
| 9 |
from psycopg.rows import dict_row
|
| 10 |
from supabase import Client, create_client
|
|
|
|
| 302 |
"signed_up": created_at.isoformat() if hasattr(created_at, "isoformat") else None,
|
| 303 |
}
|
| 304 |
|
| 305 |
+
def hash_lightning_api_key(secret: str) -> str:
|
| 306 |
+
salt = os.urandom(16)
|
| 307 |
+
derived_key = hashlib.scrypt(
|
| 308 |
+
secret.encode("utf-8"),
|
| 309 |
+
salt=salt,
|
| 310 |
+
n=16384, r=8, p=1,
|
| 311 |
+
dklen=32
|
| 312 |
+
)
|
| 313 |
+
|
| 314 |
+
salt_b64 = base64.urlsafe_b64encode(salt).rstrip(b"=").decode()
|
| 315 |
+
key_b64 = base64.urlsafe_b64encode(derived_key).rstrip(b"=").decode()
|
| 316 |
+
|
| 317 |
+
return f"scrypt${salt_b64}${key_b64}"
|
| 318 |
|
| 319 |
async def resolve_api_key_identity(token: str | None):
|
| 320 |
if token is None or token.strip() == "":
|
| 321 |
return None
|
| 322 |
|
| 323 |
+
token_hash = hash_lightning_api_key(token)
|
| 324 |
|
| 325 |
row = await execute_query(
|
| 326 |
"""
|