This commit is contained in:
laodaming 2023-08-28 11:33:25 +08:00
parent f2ce121aac
commit 31153253e1

View File

@ -8,6 +8,7 @@ import (
"errors" "errors"
"fusenapi/constants" "fusenapi/constants"
"fusenapi/utils/auth" "fusenapi/utils/auth"
"fusenapi/utils/basic"
"fusenapi/utils/encryption_decryption" "fusenapi/utils/encryption_decryption"
"fusenapi/utils/websocket_data" "fusenapi/utils/websocket_data"
"net/http" "net/http"
@ -118,7 +119,7 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request)
return return
} }
//设置连接 //设置连接
ws, err := l.setConnPool(conn, *userInfo, isFirefoxBrowser) ws, err := l.setConnPool(conn, userInfo, isFirefoxBrowser)
if err != nil { if err != nil {
conn.Close() conn.Close()
return return
@ -138,7 +139,7 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request)
} }
// 设置连接 // 设置连接
func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo auth.UserInfo, isFirefoxBrowser bool) (wsConnectItem, error) { func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo *auth.UserInfo, isFirefoxBrowser bool) (wsConnectItem, error) {
//生成连接唯一标识失败重试10次 //生成连接唯一标识失败重试10次
uniqueId, err := l.getUniqueId(userInfo, 10) uniqueId, err := l.getUniqueId(userInfo, 10)
if err != nil { if err != nil {
@ -171,7 +172,7 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo auth.User
} }
// 获取唯一id // 获取唯一id
func (l *DataTransferLogic) getUniqueId(userInfo auth.UserInfo, retryTimes int) (uniqueId string, err error) { func (l *DataTransferLogic) getUniqueId(userInfo *auth.UserInfo, retryTimes int) (uniqueId string, err error) {
if retryTimes < 0 { if retryTimes < 0 {
return "", errors.New("failed to get unique id") return "", errors.New("failed to get unique id")
} }
@ -195,24 +196,12 @@ func (l *DataTransferLogic) getUniqueId(userInfo auth.UserInfo, retryTimes int)
// 鉴权 // 鉴权
func (l *DataTransferLogic) checkAuth(r *http.Request) (isAuth bool, userInfo *auth.UserInfo) { func (l *DataTransferLogic) checkAuth(r *http.Request) (isAuth bool, userInfo *auth.UserInfo) {
// 解析JWT token,并对空用户进行判断 // 解析JWT token,并对空用户进行判断
claims, err := l.svcCtx.ParseJwtToken(r) userInfo, err := basic.ParseJwtToken(r, l.svcCtx)
// 如果解析JWT token出错,则返回未授权的JSON响应并记录错误消息
if err != nil { if err != nil {
logx.Error("ParseJwtToken err:", err)
return false, nil return false, nil
} }
if claims != nil {
// 从token中获取对应的用户信息
userInfo, err = auth.GetUserInfoFormMapClaims(claims)
// 如果获取用户信息出错,则返回未授权的JSON响应并记录错误消息
if err != nil {
logx.Error("GetUserInfoFormMapClaims err:", err)
return false, nil
}
return true, userInfo
}
//白板用户 //白板用户
return true, &auth.UserInfo{} return true, userInfo
} }
// 鉴权失败通知 // 鉴权失败通知