authorization.go 648 B

12345678910111213141516171819202122232425262728293031
  1. package headers
  2. import "strings"
  3. const (
  4. AuthorizationKey = "Authorization"
  5. TokenTypeBearer TokenType = "bearer"
  6. TokenTypeMAC TokenType = "mac"
  7. )
  8. type TokenType string
  9. // String implements stringer interface
  10. func (tt TokenType) String() string {
  11. return string(tt)
  12. }
  13. func AuthorizationTokenType(token string) TokenType {
  14. if len(token) > len(TokenTypeBearer) &&
  15. strings.ToLower(token[:len(TokenTypeBearer)]) == TokenTypeBearer.String() {
  16. return TokenTypeBearer
  17. }
  18. if len(token) > len(TokenTypeMAC) &&
  19. strings.ToLower(token[:len(TokenTypeMAC)]) == TokenTypeMAC.String() {
  20. return TokenTypeMAC
  21. }
  22. return TokenType("unknown")
  23. }