Compare commits

...

2 Commits

Author SHA1 Message Date
ee29f0ced1
Merge 8845138d63 into 52833f7fb3 2024-09-07 17:05:04 +00:00
8845138d63
Expiration timestamp instead of valid bit 2024-09-07 13:04:45 -04:00
3 changed files with 5 additions and 4 deletions

View File

@ -8,7 +8,7 @@ BEGIN TRANSACTION;
CREATE TABLE Auth (
AccountID INTEGER NOT NULL,
Cookie TEXT NOT NULL,
Valid INTEGER NOT NULL,
Expires INTEGER DEFAULT 0 NOT NULL,
FOREIGN KEY(AccountID) REFERENCES Accounts(AccountID) ON DELETE CASCADE,
UNIQUE (AccountID)
);

View File

@ -163,7 +163,7 @@ CREATE TABLE IF NOT EXISTS RedeemedCodes (
CREATE TABLE IF NOT EXISTS Auth (
AccountID INTEGER NOT NULL,
Cookie TEXT NOT NULL,
Valid INTEGER DEFAULT 0 NOT NULL,
Expires INTEGER DEFAULT 0 NOT NULL,
FOREIGN KEY(AccountID) REFERENCES Accounts(AccountID) ON DELETE CASCADE,
UNIQUE (AccountID)
);

View File

@ -104,12 +104,12 @@ bool Database::checkCookie(int accountId, const char *tryCookie) {
const char* sql_get = R"(
SELECT Cookie
FROM Auth
WHERE AccountID = ? AND Valid = 1;
WHERE AccountID = ? AND Expires > ?;
)";
const char* sql_invalidate = R"(
UPDATE Auth
SET Valid = 0
SET Expires = 0
WHERE AccountID = ?;
)";
@ -117,6 +117,7 @@ bool Database::checkCookie(int accountId, const char *tryCookie) {
sqlite3_prepare_v2(db, sql_get, -1, &stmt, NULL);
sqlite3_bind_int(stmt, 1, accountId);
sqlite3_bind_int(stmt, 2, getTimestamp());
int rc = sqlite3_step(stmt);
if (rc != SQLITE_ROW) {
sqlite3_finalize(stmt);