code: func ParseFromRequest(req *http.Request, extractor Extractor, keyFunc jwt.Keyfunc, options ...ParseFromRequestOption) (token *jwt.Token, err error) {
  	// Create basic parser struct
  	p := &fromRequestParser{req, extractor, nil, nil}
  
  	// Handle options
  	for _, option := range options {
  		option(p)
  	}
  
  	// Set defaults
  	if p.claims == nil {
  		p.claims = jwt.MapClaims{}
  	}
  	if p.parser == nil {
  		p.parser = &jwt.Parser{}
  	}
  
  	// perform extract
  	tokenString, err := p.extractor.ExtractToken(req)
  	if err != nil {
  		return nil, err
  	}
  
  	// perform parse
  	return p.parser.ParseWithClaims(tokenString, p.claims, keyFunc)
  }
docs: // Extract and parse a JWT token from an HTTP request.
  // This behaves the same as Parse, but accepts a request and an extractor
  // instead of a token string.  The Extractor interface allows you to define
  // the logic for extracting a token.  Several useful implementations are provided.
  //
  // You can provide options to modify parsing behavior