More efficient way to delete expired auth tokens

This commit is contained in:
emeric
2019-07-31 13:29:07 +02:00
parent 71cc901932
commit 8409184511
2 changed files with 4 additions and 10 deletions
+3 -9
View File
@@ -50,18 +50,12 @@ AuthToken::create(Session& session, const std::string& value, const Wt::WDateTim
}
void
AuthToken::removeExpiredTokens(Session& session, Wt::WDateTime now)
AuthToken::removeExpiredTokens(Session& session, const Wt::WDateTime& now)
{
session.checkUniqueLocked();
Wt::Dbo::collection<AuthToken::pointer> res = session.getDboSession().find<AuthToken>();
std::vector<AuthToken::pointer> expiredTokens;
for (auto& token : res)
{
if (token->_expiry < now)
token.remove();
}
session.getDboSession().execute
("DELETE FROM auth_token WHERE expiry < ?").bind(now);
}
AuthToken::pointer