api/jwt: fix timestamp to match the spec

This commit is contained in:
wukko 2024-08-17 17:58:40 +06:00
parent 580ca042f3
commit 9592e59f76
No known key found for this signature in database
GPG key ID: 3E30B3F26C7B4AA2
2 changed files with 4 additions and 4 deletions

View file

@ -12,7 +12,7 @@ const makeHmac = (header, payload) =>
.digest("base64url");
export const generate = () => {
const exp = new Date().getTime() + env.jwtLifetime * 1000;
const exp = Math.floor(new Date().getTime() / 1000) + env.jwtLifetime;
const header = toBase64URL(JSON.stringify({
alg: "HS256",
@ -20,7 +20,7 @@ export const generate = () => {
}));
const payload = toBase64URL(JSON.stringify({
jti: nanoid(3),
jti: nanoid(8),
exp,
}));
@ -34,7 +34,7 @@ export const generate = () => {
export const verify = (jwt) => {
const [header, payload, signature] = jwt.split(".", 3);
const timestamp = new Date().getTime();
const timestamp = Math.floor(new Date().getTime() / 1000);
if ([header, payload, signature].join('.') !== jwt) {
return false;

View file

@ -42,7 +42,7 @@ export const requestSession = async() => {
}
export const getSession = async () => {
const currentTime = new Date().getTime();
const currentTime = Math.floor(new Date().getTime() / 1000);
const cache = get(cachedSession);
if (cache?.token && cache?.exp > currentTime) {