package session import ( "encoding/base64" "sig-pub/api/pb" "sig-pub/pkg/utils/security" "time" "google.golang.org/protobuf/proto" ) func NewRpcSubject(userId int64, account string, role pb.Role, extra map[string]string) (subject *pb.RpcSubject) { subject = &pb.RpcSubject{Uid: userId, Account: account, Role: role, Time: time.Now().UnixMilli(), Extra: extra} return } func RpcSubjectGenToken(aesKey []byte, subject *pb.RpcSubject) (token string, err error) { bytes, err := proto.Marshal(subject) if err != nil { return } t, err := security.EncryptAesCBC(bytes, aesKey) if err != nil { return } token = base64.URLEncoding.EncodeToString(t) return }