webauthn-register.component.html 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <mat-card class="login-card">
  2. <h2>Register</h2>
  3. <!-- WebAuthn (Passkey) Registration -->
  4. <form (ngSubmit)="register()" #registerForm="ngForm">
  5. <mat-form-field appearance="outline" class="full-width">
  6. <mat-label>Username</mat-label>
  7. <input
  8. matInput
  9. [(ngModel)]="username"
  10. name="username"
  11. required
  12. #usernameInput="ngModel"
  13. />
  14. <mat-error *ngIf="usernameInput.invalid && usernameInput.touched">
  15. Username is required
  16. </mat-error>
  17. </mat-form-field>
  18. <mat-form-field appearance="outline" class="full-width">
  19. <mat-label>Email</mat-label>
  20. <input
  21. matInput
  22. type="email"
  23. [(ngModel)]="email"
  24. name="email"
  25. required
  26. email
  27. #emailInput="ngModel"
  28. />
  29. <mat-error *ngIf="emailInput.invalid && emailInput.touched">
  30. Valid email is required
  31. </mat-error>
  32. </mat-form-field>
  33. <button
  34. mat-raised-button
  35. color="primary"
  36. type="submit"
  37. class="full-width"
  38. [disabled]="loading || registerForm.invalid"
  39. >
  40. Register with Passkey
  41. </button>
  42. </form>
  43. <mat-divider class="divider"></mat-divider>
  44. <!-- Alternate Registration Option -->
  45. <button
  46. mat-stroked-button
  47. color="accent"
  48. class="full-width"
  49. (click)="goToStandardRegister()"
  50. >
  51. Register with Email & Password
  52. </button>
  53. <button
  54. mat-button
  55. type="button"
  56. class="full-width"
  57. (click)="goBack()"
  58. >
  59. Back to Login
  60. </button>
  61. <mat-hint *ngIf="message">{{ message }}</mat-hint>
  62. </mat-card>