47 lines
980 B
Go
47 lines
980 B
Go
package server
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
|
|
"go-common/library/log"
|
|
)
|
|
|
|
func encodeRoomID(aid, cid int64) string {
|
|
return fmt.Sprintf("video://%d/%d", aid, cid)
|
|
}
|
|
|
|
// NoAuthParam .
|
|
type NoAuthParam struct {
|
|
Key string `json:"key,omitempty"`
|
|
Aid int64 `json:"aid,omitempty"`
|
|
RoomID int64 `json:"roomid,omitempty"`
|
|
UserID int64 `json:"uid,omitempty"`
|
|
From int64 `json:"from,omitempty"`
|
|
}
|
|
|
|
// NoAuth .
|
|
func (s *Server) NoAuth(ver int16, token []byte, ip string) (userID int64, roomID, key string, rpt *Report, err error) {
|
|
param := NoAuthParam{}
|
|
if err = json.Unmarshal(token, ¶m); err != nil {
|
|
log.Error("json.Unmarshal(%d, %s) error(%v)", ver, token, err)
|
|
return
|
|
}
|
|
if param.Key != "" {
|
|
key = param.Key
|
|
} else {
|
|
key = s.NextKey()
|
|
}
|
|
userID = param.UserID
|
|
roomID = encodeRoomID(param.Aid, param.RoomID)
|
|
rpt = &Report{
|
|
From: param.From,
|
|
Aid: param.Aid,
|
|
Cid: param.RoomID,
|
|
Mid: param.UserID,
|
|
Key: key,
|
|
IP: ip,
|
|
}
|
|
return
|
|
}
|