Files
app/ts/reception/classes.oidcaccesstoken.ts
T

35 lines
851 B
TypeScript

import * as plugins from '../plugins.js';
import type { OidcManager } from './classes.oidcmanager.js';
@plugins.smartdata.Manager()
export class OidcAccessToken extends plugins.smartdata.SmartDataDbDoc<
OidcAccessToken,
plugins.idpInterfaces.data.IOidcAccessToken,
OidcManager
> {
public static hashToken(tokenArg: string) {
return plugins.smarthash.sha256FromStringSync(tokenArg);
}
@plugins.smartdata.unI()
public id: string;
@plugins.smartdata.svDb()
public data: plugins.idpInterfaces.data.IOidcAccessToken['data'] = {
tokenHash: '',
clientId: '',
userId: '',
scopes: [],
expiresAt: 0,
issuedAt: 0,
};
public isExpired() {
return this.data.expiresAt < Date.now();
}
public matchesToken(tokenArg: string) {
return this.data.tokenHash === OidcAccessToken.hashToken(tokenArg);
}
}