func (a *authenticator) Authenticate(
	payload auth.Payload,
	options auth.Options,
) (*auth.Response, error) {
	return a.platformAuthenticator.Do(payload, options)
}
Authenticate should be used within a token providing endpoint to
generate access tokens for a user.
package authenticator
import (
	auth "github.com/pusher/pusher-platform-go/auth"
)
type Service interface {
	Authenticate(payload auth.Payload, options auth.Options) (*auth.Response, error)
	GenerateAccessToken(options auth.Options) (auth.TokenWithExpiry, error)
	GenerateSUToken(options auth.Options) (auth.TokenWithExpiry, error)
}
type authenticator struct {
	platformAuthenticator auth.Authenticator
}
func NewService(
	instanceID string,
	keyID string,
	keySecret string,
) Service {
	return &authenticator{
		platformAuthenticator: auth.New(instanceID, keyID, keySecret),
	}
}