public string Build()

in Server/csharp/AppToken/Model/AppToken.cs [50:83]


        public string Build()
        {

            using var buf = new MemoryStream();
            using (var writer = new BinaryWriter(buf, Encoding.UTF8, true))
            {
                var appIdBytes = Encoding.UTF8.GetBytes(this.appId);
                writer.Write(BigEndianUtils.GetBytesBigEndian(appIdBytes.Length));
                writer.Write(appIdBytes);
                writer.Write(BigEndianUtils.GetBytesBigEndian(this.issueTimestamp));
                writer.Write(BigEndianUtils.GetBytesBigEndian(this.salt));
                writer.Write(BigEndianUtils.GetBytesBigEndian(this.timestamp));

                this.service.Pack(buf);

                this.options = this.options ?? new AppTokenOptions();
                this.options.Pack(buf);
            }

            using var tokenBuf = new MemoryStream();
            using (var writer = new BinaryWriter(tokenBuf, Encoding.UTF8, true))
            {

                byte[] signKey = SignatureUtils.GenerateSign(this.appKey, this.issueTimestamp, this.salt);
                byte[] tokenBody = BytesUtils.GetFixedLengthByteArray(buf);
                byte[] signature = SignatureUtils.Sign(signKey, tokenBody);

                writer.Write(BigEndianUtils.GetBytesBigEndian(signature.Length));
                writer.Write(signature);
                writer.Write(tokenBody);
            }

            return VERSION_0 + EncodeUtils.Base64Encode(CompressUtils.Compress(BytesUtils.GetFixedLengthByteArray(tokenBuf)));
        }