31 lines
850 B
TypeScript
31 lines
850 B
TypeScript
import * as plugins from '../plugins.js';
|
|
import type { MfaManager } from './classes.mfamanager.js';
|
|
|
|
@plugins.smartdata.Manager()
|
|
export class TotpCredential extends plugins.smartdata.SmartDataDbDoc<TotpCredential, any, MfaManager> {
|
|
@plugins.smartdata.unI()
|
|
public id: string;
|
|
|
|
@plugins.smartdata.svDb()
|
|
public data = {
|
|
userId: '',
|
|
status: 'pending' as 'pending' | 'active' | 'disabled',
|
|
secretCiphertext: '',
|
|
secretIv: '',
|
|
secretAuthTag: '',
|
|
algorithm: 'sha1' as 'sha1' | 'sha256' | 'sha512',
|
|
digits: 6 as 6 | 7 | 8,
|
|
period: 30,
|
|
backupCodes: [] as Array<{
|
|
id: string;
|
|
codeHash: string;
|
|
usedAt?: number | null;
|
|
createdAt: number;
|
|
}>,
|
|
createdAt: 0,
|
|
verifiedAt: null as number | null,
|
|
disabledAt: null as number | null,
|
|
lastUsedAt: null as number | null,
|
|
};
|
|
}
|