You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.7 KiB
54 lines
1.7 KiB
3 years ago
|
package rtc
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"gowebsocket/common"
|
||
|
"gowebsocket/controllers"
|
||
|
"time"
|
||
|
|
||
|
"github.com/gin-gonic/gin"
|
||
|
"github.com/qiniu/api.v7/v7/auth"
|
||
|
)
|
||
|
|
||
|
var manager *Manager
|
||
|
|
||
|
func init() {
|
||
|
accessKey := "dzumJl3gfsMSR3fvfABL4e0kDpo6FJmrlcuTu8TF"
|
||
|
secretKey := "aqWegU2o8tTCe0JtIVfMDdOjC3-jvuv2eWFvKQOm"
|
||
|
fmt.Println("accessKey: secretKey: ", accessKey, secretKey)
|
||
|
mac := auth.New(accessKey, secretKey)
|
||
|
manager = NewManager(mac)
|
||
|
}
|
||
|
|
||
|
// TODO: 获取直播流地址
|
||
|
func GetRoomToken(c *gin.Context) {
|
||
|
if o := c.Request.Header.Get("Origin"); o != "" {
|
||
|
c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
|
||
|
c.Writer.Header().Set("Access-Control-Allow-Methods", "GET,POST,HEAD,PUT,DELETE,OPTIONS")
|
||
|
c.Writer.Header().Set("Access-Control-Expose-Headers", "Server,Range,Content-Length,Content-Range")
|
||
|
c.Writer.Header().Set("Access-Control-Allow-Headers", "Origin,Range,Accept-Encoding,Referer,Cache-Control,X-Proxy-Authorization,X-Requested-With,Content-Type")
|
||
|
}
|
||
|
|
||
|
q := c.Request.URL.Query()
|
||
|
appID, roomName, userID, Permission := q.Get("app_id"), q.Get("room_name"), q.Get("user_id"), q.Get("permission")
|
||
|
|
||
|
roomAccess := RoomAccess{
|
||
|
AppID: appID,
|
||
|
RoomName: roomName,
|
||
|
UserID: userID,
|
||
|
ExpireAt: time.Now().Unix() + 3600,
|
||
|
Permission: Permission,
|
||
|
}
|
||
|
|
||
|
token, _ := manager.GetRoomToken(roomAccess)
|
||
|
url := fmt.Sprintf("https://rtc.qiniuapi.com/v3/apps/%v/rooms/%v/auth?user=%v&token=%v", roomAccess.AppID, roomAccess.RoomName, roomAccess.UserID, token)
|
||
|
fmt.Println("url: ", url)
|
||
|
|
||
|
data := gin.H{
|
||
|
"token": token,
|
||
|
}
|
||
|
controllers.Response(c, common.OK, "", data)
|
||
|
// url := fmt.Sprintf("https://rtc.qiniuapi.com/v3/apps/%v/rooms/%v/auth?user=%v&token=%v", roomAccess.AppID, roomAccess.RoomName, roomAccess.UserID, token)
|
||
|
|
||
|
}
|