More efficient way to delete expired auth tokens
This commit is contained in:
@@ -50,18 +50,12 @@ AuthToken::create(Session& session, const std::string& value, const Wt::WDateTim
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AuthToken::removeExpiredTokens(Session& session, Wt::WDateTime now)
|
AuthToken::removeExpiredTokens(Session& session, const Wt::WDateTime& now)
|
||||||
{
|
{
|
||||||
session.checkUniqueLocked();
|
session.checkUniqueLocked();
|
||||||
|
|
||||||
Wt::Dbo::collection<AuthToken::pointer> res = session.getDboSession().find<AuthToken>();
|
session.getDboSession().execute
|
||||||
|
("DELETE FROM auth_token WHERE expiry < ?").bind(now);
|
||||||
std::vector<AuthToken::pointer> expiredTokens;
|
|
||||||
for (auto& token : res)
|
|
||||||
{
|
|
||||||
if (token->_expiry < now)
|
|
||||||
token.remove();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AuthToken::pointer
|
AuthToken::pointer
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class AuthToken
|
|||||||
|
|
||||||
// Utility
|
// Utility
|
||||||
static pointer create(Session& session, const std::string& value, const Wt::WDateTime&expiry, Wt::Dbo::ptr<User> user);
|
static pointer create(Session& session, const std::string& value, const Wt::WDateTime&expiry, Wt::Dbo::ptr<User> user);
|
||||||
static void removeExpiredTokens(Session& session, Wt::WDateTime now);
|
static void removeExpiredTokens(Session& session, const Wt::WDateTime& now);
|
||||||
static pointer getByValue(Session& session, const std::string& value);
|
static pointer getByValue(Session& session, const std::string& value);
|
||||||
static pointer getById(Session& session, IdType tokenId);
|
static pointer getById(Session& session, IdType tokenId);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user