oauth2.go 822 B

12345678910111213141516171819202122232425262728
  1. package request
  2. import (
  3. "strings"
  4. )
  5. // Strips 'Bearer ' prefix from bearer token string
  6. func stripBearerPrefixFromTokenString(tok string) (string, error) {
  7. // Should be a bearer token
  8. if len(tok) > 6 && strings.ToUpper(tok[0:7]) == "BEARER " {
  9. return tok[7:], nil
  10. }
  11. return tok, nil
  12. }
  13. // AuthorizationHeaderExtractor extracts a bearer token from Authorization header
  14. // Uses PostExtractionFilter to strip "Bearer " prefix from header
  15. var AuthorizationHeaderExtractor = &PostExtractionFilter{
  16. HeaderExtractor{"Authorization"},
  17. stripBearerPrefixFromTokenString,
  18. }
  19. // OAuth2Extractor is an Extractor for OAuth2 access tokens. Looks in 'Authorization'
  20. // header then 'access_token' argument for a token.
  21. var OAuth2Extractor = &MultiExtractor{
  22. AuthorizationHeaderExtractor,
  23. ArgumentExtractor{"access_token"},
  24. }