Logger in login + token verify
This commit is contained in:
+10
-7
@@ -108,11 +108,12 @@ def login():
|
|||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
if user and check_password_hash(user['password'], password):
|
if user and check_password_hash(user['password'], password):
|
||||||
# JWT generieren
|
logger.info(f"✅ Login erfolgreich: {username}")
|
||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
"username": user['username'],
|
"username": user['username'],
|
||||||
"role": user['role'],
|
"role": user['role'],
|
||||||
"exp": datetime.utcnow() + timedelta(minutes=60) # Token läuft nach 60 Min ab
|
"exp": datetime.utcnow() + timedelta(minutes=60)
|
||||||
}
|
}
|
||||||
token = jwt.encode(payload, SECRET_KEY, algorithm="HS256")
|
token = jwt.encode(payload, SECRET_KEY, algorithm="HS256")
|
||||||
|
|
||||||
@@ -121,13 +122,13 @@ def login():
|
|||||||
"role": user['role']
|
"role": user['role']
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.warning(f"⛔ Login fehlgeschlagen: {username}")
|
||||||
return jsonify({"message": "Login fehlgeschlagen"}), 401
|
return jsonify({"message": "Login fehlgeschlagen"}), 401
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("[Login-Fehler]", e)
|
logger.error(f"[Login-Fehler] {e}")
|
||||||
return jsonify({"message": "Serverfehler"}), 500
|
return jsonify({"message": "Serverfehler"}), 500
|
||||||
|
|
||||||
|
|
||||||
@app.route('/api/logout', methods=['POST'])
|
@app.route('/api/logout', methods=['POST'])
|
||||||
def logout():
|
def logout():
|
||||||
# Aktuell macht das nichts, aber der Client bekommt Bestätigung
|
# Aktuell macht das nichts, aber der Client bekommt Bestätigung
|
||||||
@@ -136,19 +137,21 @@ def logout():
|
|||||||
def verify_token():
|
def verify_token():
|
||||||
auth_header = request.headers.get("Authorization", "")
|
auth_header = request.headers.get("Authorization", "")
|
||||||
if not auth_header.startswith("Bearer "):
|
if not auth_header.startswith("Bearer "):
|
||||||
|
logger.warning("🔐 Kein gültiger Bearer-Header")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
token = auth_header.replace("Bearer ", "")
|
token = auth_header.replace("Bearer ", "")
|
||||||
try:
|
try:
|
||||||
decoded = decode(token, SECRET_KEY, algorithms=["HS256"])
|
decoded = decode(token, SECRET_KEY, algorithms=["HS256"])
|
||||||
return decoded # enthält z. B. username, role, exp
|
return decoded
|
||||||
except ExpiredSignatureError:
|
except ExpiredSignatureError:
|
||||||
print("[JWT] Token abgelaufen")
|
logger.warning("🔐 Token abgelaufen")
|
||||||
return None
|
return None
|
||||||
except InvalidTokenError:
|
except InvalidTokenError:
|
||||||
print("[JWT] Ungültiger Token")
|
logger.warning("🔐 Ungültiger Token")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
@app.route('/api/hash/md5', methods=['POST'])
|
@app.route('/api/hash/md5', methods=['POST'])
|
||||||
def hash_md5():
|
def hash_md5():
|
||||||
logger.info("🔁 /api/hash/md5 aufgerufen")
|
logger.info("🔁 /api/hash/md5 aufgerufen")
|
||||||
|
|||||||
Reference in New Issue
Block a user