mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
147 lines
4.5 KiB
TypeScript
147 lines
4.5 KiB
TypeScript
import type {
|
|
RecoveryAuthenticator,
|
|
SmsAuthenticator,
|
|
TotpAuthenticator,
|
|
U2fAuthenticator,
|
|
UserEnrolledAuthenticator,
|
|
} from 'sentry/types';
|
|
|
|
export function AuthenticatorsFixture(): {
|
|
Recovery: (props?: Partial<RecoveryAuthenticator>) => RecoveryAuthenticator;
|
|
Sms: (props?: Partial<SmsAuthenticator>) => SmsAuthenticator;
|
|
Totp: (props?: Partial<TotpAuthenticator>) => TotpAuthenticator;
|
|
U2f: (props?: Partial<U2fAuthenticator>) => U2fAuthenticator;
|
|
} {
|
|
return {
|
|
Totp: (p = {}) => ({
|
|
lastUsedAt: null,
|
|
enrollButton: 'Enroll',
|
|
description:
|
|
'An authenticator application that supports TOTP (like Google Authenticator or 1Password) can be used to conveniently secure your account. A new token is generated every 30 seconds.',
|
|
isEnrolled: true,
|
|
removeButton: 'Remove',
|
|
id: 'totp',
|
|
createdAt: '2018-01-30T17:24:36.554Z',
|
|
configureButton: 'Info',
|
|
name: 'Authenticator App',
|
|
allowMultiEnrollment: false,
|
|
disallowNewEnrollment: false,
|
|
authId: '15',
|
|
canValidateOtp: true,
|
|
isBackupInterface: false,
|
|
allowRotationInPlace: false,
|
|
authenticatorDevice: [],
|
|
devices: [],
|
|
rotationWarning: null,
|
|
status: 'active',
|
|
codes: ['123-456'],
|
|
qrcode: 'qr-code',
|
|
...p,
|
|
}),
|
|
Sms: (p = {}) => ({
|
|
createdAt: '2018-01-30T17:24:36.554Z',
|
|
lastUsedAt: null,
|
|
enrollButton: 'Enroll',
|
|
name: 'Text Message',
|
|
allowMultiEnrollment: false,
|
|
removeButton: 'Remove',
|
|
canValidateOtp: true,
|
|
isEnrolled: false,
|
|
configureButton: 'Info',
|
|
id: 'sms',
|
|
isBackupInterface: false,
|
|
disallowNewEnrollment: false,
|
|
allowRotationInPlace: false,
|
|
authenticatorDevice: [],
|
|
devices: [],
|
|
rotationWarning: null,
|
|
status: 'active',
|
|
codes: ['123-456'],
|
|
qrcode: 'qr-code',
|
|
description:
|
|
"This authenticator sends you text messages for verification. It's useful as a backup method or when you do not have a phone that supports an authenticator application.",
|
|
...p,
|
|
}),
|
|
U2f: (p = {}) => ({
|
|
lastUsedAt: null,
|
|
enrollButton: 'Enroll',
|
|
description:
|
|
"Authenticate with a U2F hardware device. This is a device like a Yubikey or something similar which supports FIDO's U2F specification. This also requires a browser which supports this system (like Google Chrome).",
|
|
isEnrolled: true,
|
|
removeButton: 'Remove',
|
|
id: 'u2f',
|
|
createdAt: '2018-01-30T20:56:45.932Z',
|
|
configureButton: 'Configure',
|
|
name: 'U2F (Universal 2nd Factor)',
|
|
allowMultiEnrollment: true,
|
|
disallowNewEnrollment: false,
|
|
authId: '23',
|
|
canValidateOtp: false,
|
|
isBackupInterface: false,
|
|
allowRotationInPlace: false,
|
|
devices: [],
|
|
rotationWarning: null,
|
|
status: 'active',
|
|
codes: [],
|
|
challenge: {
|
|
webAuthnAuthenticationData: 'webAuthnAuthenticationData',
|
|
authenticateRequests: {
|
|
version: 'U2F_V2',
|
|
appId: 'https://sentry.io',
|
|
keyHandle: 'keyHandle',
|
|
challenge: 'challenge',
|
|
},
|
|
registerRequests: {
|
|
version: 'U2F_V2',
|
|
appId: 'https://sentry.io',
|
|
challenge: 'challenge',
|
|
},
|
|
registeredKeys: [],
|
|
// for WebAuthn register
|
|
webAuthnRegisterData: 'webAuthnRegisterData',
|
|
},
|
|
...p,
|
|
}),
|
|
Recovery: (p = {}) => ({
|
|
id: 'recovery',
|
|
lastUsedAt: null,
|
|
enrollButton: 'Activate',
|
|
allowRotationInPlace: false,
|
|
devices: [],
|
|
disallowNewEnrollment: false,
|
|
rotationWarning: null,
|
|
status: 'active',
|
|
description:
|
|
'Recovery codes are the only way to access your account if you lose your device and cannot receive two-factor authentication codes.',
|
|
isEnrolled: true,
|
|
removeButton: null,
|
|
createdAt: '2018-01-30T17:24:36.570Z',
|
|
configureButton: 'View Codes',
|
|
name: 'Recovery Codes',
|
|
allowMultiEnrollment: false,
|
|
authId: '16',
|
|
canValidateOtp: true,
|
|
isBackupInterface: true,
|
|
codes: ['ABCD-1234', 'EFGH-5678'],
|
|
...p,
|
|
}),
|
|
};
|
|
}
|
|
|
|
export function AllAuthenticatorsFixture() {
|
|
return Object.values(AuthenticatorsFixture()).map(x => x());
|
|
}
|
|
|
|
export function UserEnrolledAuthenticatorFixture(
|
|
params: Partial<UserEnrolledAuthenticator>
|
|
): UserEnrolledAuthenticator {
|
|
return {
|
|
id: '1',
|
|
type: 'totp',
|
|
name: 'auth',
|
|
dateCreated: '2020-01-01T00:00:00.000Z',
|
|
dateUsed: '2020-01-01T00:00:00.000Z',
|
|
...params,
|
|
};
|
|
}
|