You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

user.go 938B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package webauthn
  2. // User is built to interface with the Relying Party's User entry and
  3. // elaborate the fields and methods needed for WebAuthn
  4. type User interface {
  5. // User ID according to the Relying Party
  6. WebAuthnID() []byte
  7. // User Name according to the Relying Party
  8. WebAuthnName() string
  9. // Display Name of the user
  10. WebAuthnDisplayName() string
  11. // User's icon url
  12. WebAuthnIcon() string
  13. // Credentials owned by the user
  14. WebAuthnCredentials() []Credential
  15. }
  16. type defaultUser struct {
  17. id []byte
  18. }
  19. var _ User = (*defaultUser)(nil)
  20. func (user *defaultUser) WebAuthnID() []byte {
  21. return user.id
  22. }
  23. func (user *defaultUser) WebAuthnName() string {
  24. return "newUser"
  25. }
  26. func (user *defaultUser) WebAuthnDisplayName() string {
  27. return "New User"
  28. }
  29. func (user *defaultUser) WebAuthnIcon() string {
  30. return "https://pics.com/avatar.png"
  31. }
  32. func (user *defaultUser) WebAuthnCredentials() []Credential {
  33. return []Credential{}
  34. }