Browse Source

auth work

reid 2 năm trước cách đây
mục cha
commit
62706cfc05
1 tập tin đã thay đổi với 24 bổ sung23 xóa
  1. 24 23
      ws/ws.go

+ 24 - 23
ws/ws.go

@@ -60,30 +60,9 @@ func WsHandler(w http.ResponseWriter, r *http.Request) {
 			continue
 		}
 		var payload structs.WsPayload
-		// if it fails to marshal, assume that means no token
-		// "verify" action is implicit
 		if err := json.Unmarshal(msg, &payload); err != nil {
-			config.Logger.Info("New client")
-			// auth.CreateToken also adds to unauth map
-			newToken, err := auth.CreateToken(conn, r, false)
-			if err != nil {
-				config.Logger.Error("Unable to create token")
-			}
-			result := map[string]interface{}{
-				"type":     "activity",
-				"id":       payload.ID, // this is like the action id
-				"error":    "null",
-				"response": "ack",
-				"token":    newToken,
-			}
-			respJson, err := json.Marshal(result)
-			if err != nil {
-				errmsg := fmt.Sprintf("Error marshalling token (init): %v", err)
-				config.Logger.Error(errmsg)
-			}
-			if err := conn.WriteMessage(websocket.TextMessage, respJson); err != nil {
-				config.Logger.Error(fmt.Sprintf("Error writing response: %v", err))
-			}
+			config.Logger.Warn(fmt.Sprintf("Error unmarshalling payload: %v", err))
+			continue
 		}
 		config.Logger.Info(fmt.Sprintf("Received message: %s", string(msg)))
 		var msgType structs.WsType
@@ -132,6 +111,28 @@ func WsHandler(w http.ResponseWriter, r *http.Request) {
 			case "setup":
 				config.Logger.Info("Setup")
 				// setup.Setup(payload)
+			case "verify":
+				config.Logger.Info("New client")
+				// auth.CreateToken also adds to unauth map
+				newToken, err := auth.CreateToken(conn, r, false)
+				if err != nil {
+					config.Logger.Error("Unable to create token")
+				}
+				result := map[string]interface{}{
+					"type":     "activity",
+					"id":       payload.ID, // this is like the action id
+					"error":    "null",
+					"response": "ack",
+					"token":    newToken,
+				}
+				respJson, err := json.Marshal(result)
+				if err != nil {
+					errmsg := fmt.Sprintf("Error marshalling token (init): %v", err)
+					config.Logger.Error(errmsg)
+				}
+				if err := conn.WriteMessage(websocket.TextMessage, respJson); err != nil {
+					config.Logger.Error(fmt.Sprintf("Error writing response: %v", err))
+				}
 			default:
 				errmsg := fmt.Sprintf("Unknown unauth request type: %s", payload.Type)
 				config.Logger.Warn(errmsg)