in Server/go/apptoken/apptoken.go [58:113]
func (token *AppToken) buildSignBody() ([]byte, error) {
buf := new(bytes.Buffer)
// appId
appId := []byte(token.AppId)
if err := binary.Write(buf, binary.BigEndian, int32(len(appId))); err != nil {
return nil, errors.New("illegal AppId")
}
if _, err := buf.Write(appId); err != nil {
return nil, errors.New("illegal AppId")
}
// issueTimestamp
if err := binary.Write(buf, binary.BigEndian, token.IssueTimestamp); err != nil {
return nil, errors.New("illegal IssueTimestamp")
}
// salt
if err := binary.Write(buf, binary.BigEndian, token.Salt); err != nil {
return nil, errors.New("illegal Salt")
}
// timestamp
if err := binary.Write(buf, binary.BigEndian, token.Timestamp); err != nil {
return nil, errors.New("illegal Timestamp")
}
// service
service, err := token.Service.Pack()
if err != nil {
return nil, errors.New("illegal Service")
}
if err := binary.Write(buf, binary.BigEndian, service); err != nil {
return nil, errors.New("illegal Service")
}
// options
if token.Options == nil {
token.Options = &AppTokenOptions{
EngineOptions: make(map[string]string),
}
}
options, err := token.Options.Pack()
if err != nil {
return nil, errors.New("illegal AppTokenOptions")
}
if err := binary.Write(buf, binary.BigEndian, options); err != nil {
return nil, errors.New("illegal AppTokenOptions")
}
//FIXME
len := nextMultiple(buf.Len(), BUFFER_CAPACITY_BASE)
result := make([]byte, len)
copy(result, buf.Bytes())
return result, nil
}