From 4157e66557fab51a38fd04a77f19e6d56eb86fc9 Mon Sep 17 00:00:00 2001 From: Digital Artifex <7929434+DigitalArtifex@users.noreply.github.com> Date: Sat, 15 Aug 2026 03:20:12 -0400 Subject: [PATCH] Fixed expiry reference --- KomplexHubPlugin/common/userservices.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/KomplexHubPlugin/common/userservices.cpp b/KomplexHubPlugin/common/userservices.cpp index 79cad46..83a2ef8 100644 --- a/KomplexHubPlugin/common/userservices.cpp +++ b/KomplexHubPlugin/common/userservices.cpp @@ -247,14 +247,14 @@ auto UserServices::login(const QString &username, const QByteArray &password) -> if(parseError.error != QJsonParseError::NoError) { setErrorString(parseError.errorString()); + throw std::exception(); } - QJsonObject rootObject; + QJsonObject rootObject = document.object(); + QJsonObject dataObject = rootObject.value(QStringLiteral("data")).toObject(); if(!rootObject.value("success").toBool()) { - QJsonObject dataObject = rootObject.value(QStringLiteral("data")).toObject(); - setErrorString ( QStringLiteral("Login failure (%1): %2").arg @@ -263,16 +263,27 @@ auto UserServices::login(const QString &username, const QByteArray &password) -> dataObject.value(QStringLiteral("message")).toString() ) ); + throw std::exception(); + } + + QString expiryData = dataObject.value(QStringLiteral("expires")).toString(); + bool converted = false; + qint64 secsSinceEpoch = expiryData.toLongLong(&converted); + + if(!converted) + { + setErrorString(QStringLiteral("Malformed expiry data")); + throw std::exception(); } UserCredentials credentials { .username = username.toUtf8(), - .sessionToken = rootObject.value + .sessionToken = dataObject.value ( QStringLiteral("jwt") ).toString().toUtf8(), - .expiry = QDateTime::currentDateTime() + .expiry = QDateTime::fromSecsSinceEpoch(secsSinceEpoch) }; savePassword(username, password);