3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 04:25:01 +00:00

Refresh dashboard authentication on every API call and every 15 minutes

This commit is contained in:
Dragory 2021-05-22 21:15:13 +03:00
parent 553fb57c46
commit f3a90faaa7
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
4 changed files with 63 additions and 5 deletions

View file

@ -5,7 +5,9 @@ import crypto from "crypto";
import moment from "moment-timezone";
// tslint:disable-next-line:no-submodule-imports
import uuidv4 from "uuid/v4";
import { DBDateFormat } from "../utils";
import { DAYS, DBDateFormat } from "../utils";
const LOGIN_EXPIRY_TIME = 1 * DAYS;
export class ApiLogins extends BaseRepository {
private apiLogins: Repository<ApiLogin>;
@ -68,7 +70,7 @@ export class ApiLogins extends BaseRepository {
logged_in_at: moment.utc().format(DBDateFormat),
expires_at: moment
.utc()
.add(1, "day")
.add(LOGIN_EXPIRY_TIME, "ms")
.format(DBDateFormat),
});
@ -86,4 +88,19 @@ export class ApiLogins extends BaseRepository {
},
);
}
async refreshApiKeyExpiryTime(apiKey) {
const [loginId, token] = apiKey.split(".");
if (!loginId || !token) return;
await this.apiLogins.update(
{ id: loginId },
{
expires_at: moment()
.utc()
.add(LOGIN_EXPIRY_TIME, "ms")
.format(DBDateFormat),
},
);
}
}