code: func (t *TokenRenewer) parse(tokenString string) error {
  	claims := &kitekey.KiteClaims{}
  
  	_, err := jwt.ParseWithClaims(tokenString, claims, t.localKite.RSAKey)
  	if err != nil {
  		valErr, ok := err.(*jwt.ValidationError)
  		if !ok {
  			return err
  		}
  
  		// do noy return for ValidationErrorSignatureValid. This is because we
  		// might asked for a kite who's public Key is different what we have.
  		// We still should be able to send them requests.
  		if (valErr.Errors & jwt.ValidationErrorSignatureInvalid) == 0 {
  			return fmt.Errorf("Cannot parse token: %s", err)
  		}
  	}
  
  	t.validUntil = time.Unix(claims.ExpiresAt, 0).UTC()
  	return nil
  }
docs: // parse the token string and set