Files
sign/packages/lib/server-only/2fa/verify-backup-code.ts

19 lines
495 B
TypeScript
Raw Normal View History

2025-01-02 15:33:37 +11:00
import type { User } from '@prisma/client';
import { getBackupCodes } from './get-backup-code';
type VerifyBackupCodeParams = {
2025-01-02 15:33:37 +11:00
user: Pick<User, 'id' | 'twoFactorEnabled' | 'twoFactorBackupCodes'>;
backupCode: string;
};
2025-01-02 15:33:37 +11:00
export const verifyBackupCode = ({ user, backupCode }: VerifyBackupCodeParams) => {
const userBackupCodes = getBackupCodes({ user });
if (!userBackupCodes) {
throw new Error('User has no backup codes');
}
return userBackupCodes.includes(backupCode);
};