Fixed expiry reference

This commit is contained in:
Digital Artifex
2026-08-15 03:20:12 -04:00
parent 4182e2d5a7
commit 4157e66557
+16 -5
View File
@@ -247,14 +247,14 @@ auto UserServices::login(const QString &username, const QByteArray &password) ->
if(parseError.error != QJsonParseError::NoError) if(parseError.error != QJsonParseError::NoError)
{ {
setErrorString(parseError.errorString()); setErrorString(parseError.errorString());
throw std::exception();
} }
QJsonObject rootObject; QJsonObject rootObject = document.object();
QJsonObject dataObject = rootObject.value(QStringLiteral("data")).toObject();
if(!rootObject.value("success").toBool()) if(!rootObject.value("success").toBool())
{ {
QJsonObject dataObject = rootObject.value(QStringLiteral("data")).toObject();
setErrorString setErrorString
( (
QStringLiteral("Login failure (%1): %2").arg QStringLiteral("Login failure (%1): %2").arg
@@ -263,16 +263,27 @@ auto UserServices::login(const QString &username, const QByteArray &password) ->
dataObject.value(QStringLiteral("message")).toString() 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 UserCredentials credentials
{ {
.username = username.toUtf8(), .username = username.toUtf8(),
.sessionToken = rootObject.value .sessionToken = dataObject.value
( (
QStringLiteral("jwt") QStringLiteral("jwt")
).toString().toUtf8(), ).toString().toUtf8(),
.expiry = QDateTime::currentDateTime() .expiry = QDateTime::fromSecsSinceEpoch(secsSinceEpoch)
}; };
savePassword(username, password); savePassword(username, password);