fix
This commit is contained in:
parent
be045b2615
commit
0142e04ef5
|
@ -6,6 +6,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"fusenapi/constants"
|
"fusenapi/constants"
|
||||||
"fusenapi/server/websocket/internal/types"
|
"fusenapi/server/websocket/internal/types"
|
||||||
|
"fusenapi/utils/auth"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/gorilla/websocket"
|
"github.com/gorilla/websocket"
|
||||||
"github.com/zeromicro/go-zero/rest/httpx"
|
"github.com/zeromicro/go-zero/rest/httpx"
|
||||||
|
@ -79,44 +80,17 @@ func (l *DataTransferLogic) DataTransfer(svcCtx *svc.ServiceContext, w http.Resp
|
||||||
}
|
}
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
rsp := types.DataTransferData{}
|
rsp := types.DataTransferData{}
|
||||||
/*isAuth := true
|
//鉴权不成功10秒后断开
|
||||||
// 解析JWT token,并对空用户进行判断
|
if !l.checkAuth(svcCtx, r) {
|
||||||
claims, err := svcCtx.ParseJwtToken(r)
|
|
||||||
// 如果解析JWT token出错,则返回未授权的JSON响应并记录错误消息
|
|
||||||
if err != nil {
|
|
||||||
rsp.T = constants.WEBSOCKET_UNAUTH
|
rsp.T = constants.WEBSOCKET_UNAUTH
|
||||||
rsp.D = "unAuth"
|
rsp.D = "unAuth"
|
||||||
b, _ := json.Marshal(rsp)
|
b, _ := json.Marshal(rsp)
|
||||||
_ = conn.WriteMessage(websocket.TextMessage, b)
|
_ = conn.WriteMessage(websocket.TextMessage, b)
|
||||||
isAuth = false
|
|
||||||
}
|
|
||||||
if claims != nil {
|
|
||||||
// 从token中获取对应的用户信息
|
|
||||||
_, err = auth.GetUserInfoFormMapClaims(claims)
|
|
||||||
// 如果获取用户信息出错,则返回未授权的JSON响应并记录错误消息
|
|
||||||
if err != nil {
|
|
||||||
rsp.T = constants.WEBSOCKET_UNAUTH
|
|
||||||
rsp.D = "unAuth!!"
|
|
||||||
b, _ := json.Marshal(rsp)
|
|
||||||
_ = conn.WriteMessage(websocket.TextMessage, b)
|
|
||||||
isAuth = false
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 如果claims为nil,则认为用户身份为白板用户
|
|
||||||
rsp.T = constants.WEBSOCKET_UNAUTH
|
|
||||||
rsp.D = "unAuth!!!"
|
|
||||||
b, _ := json.Marshal(rsp)
|
|
||||||
_ = conn.WriteMessage(websocket.TextMessage, b)
|
|
||||||
isAuth = false
|
|
||||||
}
|
|
||||||
//不是授权的连接(10秒后关闭)
|
|
||||||
if !isAuth {
|
|
||||||
select {
|
select {
|
||||||
case <-time.After(time.Second * 10):
|
case <-time.After(time.Second * 10): //10秒后断开
|
||||||
conn.Close()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
//生成连接唯一标识
|
//生成连接唯一标识
|
||||||
flag := uuid.New().String() + time.Now().Format("20060102150405")
|
flag := uuid.New().String() + time.Now().Format("20060102150405")
|
||||||
ws := wsConnectItem{
|
ws := wsConnectItem{
|
||||||
|
@ -150,6 +124,27 @@ func (l *DataTransferLogic) DataTransfer(svcCtx *svc.ServiceContext, w http.Resp
|
||||||
ws.heartbeat()
|
ws.heartbeat()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 鉴权
|
||||||
|
func (l *DataTransferLogic) checkAuth(svcCtx *svc.ServiceContext, r *http.Request) bool {
|
||||||
|
// 解析JWT token,并对空用户进行判断
|
||||||
|
claims, err := svcCtx.ParseJwtToken(r)
|
||||||
|
// 如果解析JWT token出错,则返回未授权的JSON响应并记录错误消息
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if claims != nil {
|
||||||
|
// 从token中获取对应的用户信息
|
||||||
|
_, err = auth.GetUserInfoFormMapClaims(claims)
|
||||||
|
// 如果获取用户信息出错,则返回未授权的JSON响应并记录错误消息
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
// 心跳
|
// 心跳
|
||||||
func (w *wsConnectItem) heartbeat() {
|
func (w *wsConnectItem) heartbeat() {
|
||||||
rsp := types.DataTransferData{
|
rsp := types.DataTransferData{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user