🧹 Delete token from db if expired
This commit is contained in:
parent
4f05382fc4
commit
71e70a2713
@ -50,7 +50,7 @@ function insertRefreshToken(
|
||||
db: Database.Database,
|
||||
refreshToken: string,
|
||||
expiresIn: number,
|
||||
) {
|
||||
): void {
|
||||
insert(db, "refresh-token", refreshToken, expiresIn)
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ function insert(
|
||||
key: TokenKey,
|
||||
token: string,
|
||||
expiresIn: number,
|
||||
) {
|
||||
): void {
|
||||
db.prepare("INSERT OR REPLACE INTO tokens VALUES (?, ?, ?)").run(
|
||||
key,
|
||||
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 { Database } from "better-sqlite3"
|
||||
import {
|
||||
clearTokens,
|
||||
fetchToken,
|
||||
insertTokens,
|
||||
type TokenResponse,
|
||||
@ -97,7 +98,8 @@ export class Sparebank1Impl implements Bank {
|
||||
} else if (this.isValidToken(tokenResponse)) {
|
||||
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")
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user