public TokenPayload Decode(string token)
        {
            if (!_signer.TryDecode(token, out var payloadBytes))
            {
                throw new InvalidOperationException("Token Forged");
            }

            return(TokenPayload.FromPayloadBytes(payloadBytes));
        }
        public bool TryDecode(string token, out TokenPayload payload)
        {
            payload = null;

            if (!_signer.TryDecode(token, out var payloadBytes))
            {
                return(false);
            }

            try
            {
                payload = TokenPayload.FromPayloadBytes(payloadBytes);
                return(true);
            }
            catch
            {
                return(false);
            }
        }