1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-09 21:20:27 +00:00
Files
browser/libs/auth/src/angular/two-factor-auth/two-factor-auth.component.html
2025-04-10 16:26:44 -05:00

111 lines
3.3 KiB
HTML

<ng-container *ngIf="loading">
<div class="tw-flex tw-items-center tw-justify-center">
<i class="bwi bwi-spinner bwi-spin bwi-3x" aria-hidden="true"></i>
</div>
</ng-container>
<ng-container *ngIf="!loading">
<form
[bitSubmit]="submit"
[formGroup]="form"
autocomplete="off"
(keydown.enter)="handleEnterKeyPress()"
>
<app-two-factor-auth-email
[tokenFormControl]="tokenFormControl"
(tokenChange)="saveFormDataWithPartialData($event)"
*ngIf="selectedProviderType === providerType.Email"
/>
<app-two-factor-auth-authenticator
[tokenFormControl]="tokenFormControl"
(tokenChange)="saveFormDataWithPartialData($event)"
*ngIf="selectedProviderType === providerType.Authenticator"
/>
<app-two-factor-auth-yubikey
[tokenFormControl]="tokenFormControl"
*ngIf="selectedProviderType === providerType.Yubikey"
/>
<app-two-factor-auth-duo
(tokenEmitter)="submit($event)"
[providerData]="selectedProviderData"
*ngIf="
selectedProviderType === providerType.OrganizationDuo ||
selectedProviderType === providerType.Duo
"
#duoComponent
/>
<bit-form-control *ngIf="!hideRememberMe()">
<bit-label>{{ "dontAskAgainOnThisDeviceFor30Days" | i18n }}</bit-label>
<input type="checkbox" bitCheckbox formControlName="remember" (change)="saveFormData()" />
</bit-form-control>
<app-two-factor-auth-webauthn
(webAuthnResultEmitter)="submit($event.token, $event.remember)"
(webAuthnInNewTabEmitter)="webAuthInNewTab = $event"
*ngIf="selectedProviderType === providerType.WebAuthn"
/>
<ng-container *ngIf="selectedProviderType == null">
<p bitTypography="body1">{{ "noTwoStepProviders" | i18n }}</p>
<p bitTypography="body1">{{ "noTwoStepProviders2" | i18n }}</p>
</ng-container>
<!-- Buttons -->
<div class="tw-flex tw-flex-col tw-space-y-3">
<button
type="submit"
buttonType="primary"
bitButton
bitFormButton
#continueButton
*ngIf="showContinueButton()"
>
<span> {{ "continueLoggingIn" | i18n }} </span>
</button>
<button
type="button"
buttonType="primary"
bitButton
(click)="launchDuo()"
*ngIf="
selectedProviderType === providerType.Duo ||
selectedProviderType === providerType.OrganizationDuo
"
>
<span *ngIf="duoLaunchAction === DuoLaunchAction.DIRECT_LAUNCH">
{{ "launchDuo" | i18n }}</span
>
<span *ngIf="duoLaunchAction === DuoLaunchAction.SINGLE_ACTION_POPOUT">
{{ "popoutExtension" | i18n }}</span
>
</button>
<p class="tw-text-center tw-mb-0">{{ "or" | i18n }}</p>
<button
type="button"
buttonType="secondary"
bitButton
bitFormButton
*ngIf="twoFactorProviders?.size > 1"
(click)="selectOtherTwoFactorMethod()"
>
<span> {{ "selectAnotherMethod" | i18n }} </span>
</button>
<button
type="button"
buttonType="secondary"
bitButton
bitFormButton
(click)="use2faRecoveryCode()"
>
<span> {{ "useYourRecoveryCode" | i18n }} </span>
</button>
</div>
</form>
</ng-container>