auth.go 594 B

12345678910111213141516171819202122232425262728
  1. package model
  2. import "gorm.io/gorm"
  3. type Auth struct {
  4. Model
  5. Name string `json:"name"`
  6. Password string `json:"-"`
  7. Status bool `json:"status" gorm:"default:1"`
  8. OTPSecret []byte `json:"-" gorm:"type:blob"`
  9. Enabled2FA bool `json:"enabled_2fa" gorm:"-"`
  10. }
  11. type AuthToken struct {
  12. UserID int `json:"user_id"`
  13. Token string `json:"token"`
  14. ExpiredAt int64 `json:"expired_at" gorm:"default:0"`
  15. }
  16. func (u *Auth) AfterFind(tx *gorm.DB) error {
  17. u.Enabled2FA = u.EnabledOTP()
  18. return nil
  19. }
  20. func (u *Auth) EnabledOTP() bool {
  21. return len(u.OTPSecret) != 0
  22. }