user_token.go 787 B

1234567891011121314151617181920212223242526272829303132
  1. package models
  2. import "errors"
  3. // Typed errors
  4. var (
  5. ErrUserTokenNotFound = errors.New("user token not found")
  6. )
  7. // UserToken represents a user token
  8. type UserToken struct {
  9. Id int64
  10. UserId int64
  11. AuthToken string
  12. PrevAuthToken string
  13. UserAgent string
  14. ClientIp string
  15. AuthTokenSeen bool
  16. SeenAt int64
  17. RotatedAt int64
  18. CreatedAt int64
  19. UpdatedAt int64
  20. UnhashedToken string
  21. }
  22. // UserTokenService are used for generating and validating user tokens
  23. type UserTokenService interface {
  24. CreateToken(userId int64, clientIP, userAgent string) (*UserToken, error)
  25. LookupToken(unhashedToken string) (*UserToken, error)
  26. TryRotateToken(token *UserToken, clientIP, userAgent string) (bool, error)
  27. RevokeToken(token *UserToken) error
  28. }