in Server/python3/app_token.py [0:0]
def build(self) -> str:
if self.app_key is None:
raise ValueError('missing secretKey')
if self.service is None:
raise ValueError('missing service')
signKey = util.sign_utils.generate_sign(self.app_key, self.issue_timestamp, self.salt)
bufBody = io.BytesIO()
app_id_bytes = self.app_id.encode('utf-8')
bufBody.write(struct.pack('>I', len(app_id_bytes)))
bufBody.write(app_id_bytes)
bufBody.write(struct.pack('>I', self.issue_timestamp))
bufBody.write(struct.pack('>I', self.salt))
bufBody.write(struct.pack('>I', self.timestamp))
bufBody.write(self.service.pack())
if self.options is None:
self.options = AppTokenOptions()
bufBody.write(self.options.pack())
# FIXME
bufBodyFixedLength = util.bytes_utils.get_fixed_length_bytes(bufBody.getvalue())
signature = util.sign_utils.sign(signKey, bufBodyFixedLength)
buf = io.BytesIO()
buf.write(struct.pack('>I', len(signature)))
buf.write(signature)
buf.write(bufBodyFixedLength)
bufFixedLength = util.bytes_utils.get_fixed_length_bytes(buf.getvalue())
return "{}{}".format(VERSION_0, base64.b64encode(util.compress_utils.compress(bufFixedLength)).decode('utf-8'))