func (TokenAuth) GenSecret(uid types.Uid, expires time.Time) (string, error) { // [8:UID][4:expires][32:signature] == 44 bytes buf := new(bytes.Buffer) uidbits, _ := uid.MarshalBinary() binary.Write(buf, binary.LittleEndian, uidbits) binary.Write(buf, binary.LittleEndian, uint32(expires.Unix())) hasher := hmac.New(sha256.New, hmac_salt) hasher.Write(buf.Bytes()) binary.Write(buf, binary.LittleEndian, hasher.Sum(nil)) return base64.URLEncoding.EncodeToString(buf.Bytes()), nil }