Nye-TeeOff/kode_eksport_1/backend_test_login_py.txt

47 lines
No EOL
1.8 KiB
Text

import asyncio
import asyncpg
import os
from passlib.context import CryptContext
DB_URL = os.getenv("DATABASE_URL", "postgresql://teeoff_admin:teeoff_secret_password@db:5432/teeoff")
# Vi setter opp passord-sjekkeren AKKURAT slik main.py gjør det
pwd_context = CryptContext(schemes=["pbkdf2_sha256"], deprecated="auto")
async def test_sannheten():
print("\n" + "="*50)
print(" 🔍 TEE OFF SANNHETSSERUM")
print("="*50)
username = "Envide Webutvikling"
test_password = "Solveig Vilde Ingvild Gina" # Sørg for at dette er det du satte sist!
try:
conn = await asyncpg.connect(DB_URL)
row = await conn.fetchrow("SELECT password_hash FROM admins WHERE username = $1", username)
if not row:
print("❌ FEIL: Fant ikke brukeren i det hele tatt!")
return
db_hash = row['password_hash']
print(f"1. Hash funnet i databasen: {db_hash[:30]}...")
print(f"2. Tester mot passordet: '{test_password}'")
# Den magiske testen
is_valid = pwd_context.verify(test_password, db_hash)
print("-" * 50)
if is_valid:
print("✅ SUKSESS! Passordet og hashen stemmer 100% overens.")
print("➡️ KONKLUSJON: Hashingen fungerer perfekt. Problemet MÅ være at FastAPI (main.py) ikke klarer å lese JSON-dataene fra curl/frontend riktig.")
else:
print("❌ FEIL! Passordet stemmer IKKE med hashen i databasen.")
print("➡️ KONKLUSJON: Scriptet som oppdaterer passordet gjør en feil (f.eks. legger til usynlige tegn), eller lagringen i databasen blir korrupt.")
finally:
await conn.close()
if __name__ == "__main__":
asyncio.run(test_sannheten())