🧹 Delete token from db if expired
This commit is contained in:
parent
4f05382fc4
commit
71e70a2713
@ -50,7 +50,7 @@ function insertRefreshToken(
|
|||||||
db: Database.Database,
|
db: Database.Database,
|
||||||
refreshToken: string,
|
refreshToken: string,
|
||||||
expiresIn: number,
|
expiresIn: number,
|
||||||
) {
|
): void {
|
||||||
insert(db, "refresh-token", refreshToken, expiresIn)
|
insert(db, "refresh-token", refreshToken, expiresIn)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ function insert(
|
|||||||
key: TokenKey,
|
key: TokenKey,
|
||||||
token: string,
|
token: string,
|
||||||
expiresIn: number,
|
expiresIn: number,
|
||||||
) {
|
): void {
|
||||||
db.prepare("INSERT OR REPLACE INTO tokens VALUES (?, ?, ?)").run(
|
db.prepare("INSERT OR REPLACE INTO tokens VALUES (?, ?, ?)").run(
|
||||||
key,
|
key,
|
||||||
token,
|
token,
|
||||||
@ -82,3 +82,10 @@ export function fetchToken(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function clearTokens(db: Database.Database): void {
|
||||||
|
db.prepare("DELETE FROM tokens WHERE key in ( ?, ? )").run([
|
||||||
|
"access-token",
|
||||||
|
"refresh-token",
|
||||||
|
] as TokenKey[])
|
||||||
|
}
|
||||||
|
@ -3,6 +3,7 @@ import logger from "@/logger.ts"
|
|||||||
import dayjs, { Dayjs } from "dayjs"
|
import dayjs, { Dayjs } from "dayjs"
|
||||||
import { Database } from "better-sqlite3"
|
import { Database } from "better-sqlite3"
|
||||||
import {
|
import {
|
||||||
|
clearTokens,
|
||||||
fetchToken,
|
fetchToken,
|
||||||
insertTokens,
|
insertTokens,
|
||||||
type TokenResponse,
|
type TokenResponse,
|
||||||
@ -97,7 +98,8 @@ export class Sparebank1Impl implements Bank {
|
|||||||
} else if (this.isValidToken(tokenResponse)) {
|
} else if (this.isValidToken(tokenResponse)) {
|
||||||
return tokenResponse.token
|
return tokenResponse.token
|
||||||
}
|
}
|
||||||
// TODO clear database, if refresh token is invalid, will cause Exceptions on each call
|
logger.warn("Refresh token expired, deleting tokens from database")
|
||||||
|
clearTokens(this.db)
|
||||||
throw new Error("Refresh token is expired. Create a new one")
|
throw new Error("Refresh token is expired. Create a new one")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user