alg.go
func (alg Algorithm) Decode(signer Signer, buf []byte, obj interface{}) error {
	return Decode(alg, signer, buf, obj)
}
func (alg Algorithm) Decode(signer Signer, buf []byte, obj interface{}) error {
	return Decode(alg, signer, buf, obj)
}
// Decode decodes a serialized JWT in buf into obj, and verifies the JWT
// signature using the Algorithm and Signer.
//
// If the token or signature is invalid, ErrInvalidToken or ErrInvalidSignature
// will be returned, respectively. Otherwise, any other errors encountered
// during token decoding will be returned.