diff --git a/Modules/Account/functionalTest/testAccount.hpp b/Modules/Account/functionalTest/testAccount.hpp index 2efc30df..3469854c 100644 --- a/Modules/Account/functionalTest/testAccount.hpp +++ b/Modules/Account/functionalTest/testAccount.hpp @@ -1660,6 +1660,31 @@ private slots: } } + void apitoken_revoke_again() { + this->OldTokenJWT = this->TokenJWT; + + QT_TRY { + QVariant Result = this->callUserAPI( + RESTClientHelper::enuHTTPMethod::POST, + "Account/APITokens/revoke", + {}, + { + { "token", this->TokenJWT }, + { "pass", "5d12d36cd5f66fe3e72f7b03cbb75333" }, + { "salt", "1234" }, + }); + + QVERIFY(Result.isValid()); + + this->TokenJWT = Result.toMap().value("token").toString(); + + QVERIFY(this->TokenJWT.isEmpty() == false); + + } QT_CATCH (const std::exception &exp) { + QTest::qFail(exp.what(), __FILE__, __LINE__); + } + } + void apitoken_api_ping_after_revoke_old() { QT_TRY { QVariant Result = this->callAPI( diff --git a/Modules/Account/moduleSrc/ORM/APITokens.cpp b/Modules/Account/moduleSrc/ORM/APITokens.cpp index a0fa5837..55392b72 100644 --- a/Modules/Account/moduleSrc/ORM/APITokens.cpp +++ b/Modules/Account/moduleSrc/ORM/APITokens.cpp @@ -297,12 +297,17 @@ Targoman::API::AccountModule::stuRequestTokenResult IMPL_REST_POST(APITokens, re QDateTime ExpireDateTime = QDateTime::fromSecsSinceEpoch(TokenJWTPayload["exp"].toDouble()); //---------------------------------------- + +// TargomanDebug(5) << "before" << TokenJWTPayload; + int RevokeCounter = 0; - if (TokenJWTPayload.contains("rvk")) - RevokeCounter = TokenJWTPayload["rvk"].toInt(); + if (TokenJWTPayload.contains("rvkcnt")) + RevokeCounter = TokenJWTPayload["rvkcnt"].toInt(); ++RevokeCounter; TokenJWTPayload["rvkcnt"] = RevokeCounter; +// TargomanDebug(5) << "after" << TokenJWTPayload; + //---------------------------------------- QString NewToken = QJWT::encryptAndSigned(TokenJWTPayload);