MCPcopy Create free account
hub / github.com/MertJSX/folderhost / WsConnect

Function WsConnect

middleware/websocket/auth.go:13–49  ·  view source on GitHub ↗
(c *fiber.Ctx)

Source from the content-addressed store, hash-verified

11)
12
13func WsConnect(c *fiber.Ctx) error {
14 if !websocket.IsWebSocketUpgrade(c) {
15 return c.Next()
16 }
17
18 token := c.Query("token")
19 if token == "" {
20 authHeader := c.Get("Authorization")
21 if authHeader != "" && strings.HasPrefix(authHeader, "Bearer ") {
22 token = strings.TrimPrefix(authHeader, "Bearer ")
23 }
24 }
25
26 if token == "" {
27 return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{
28 "error": "Token required for WebSocket connection",
29 })
30 }
31
32 username, err := utils.VerifyToken(token, config.Config.SecretJwtKey)
33 if err != nil {
34 return c.Status(401).JSON(fiber.Map{"error": "invalid token"})
35 }
36
37 foundAccount, err := users.GetUserByUsername(username)
38
39 if err != nil {
40 return c.Status(404).JSON(fiber.Map{"err": "account not found"})
41 }
42
43 c.Locals("username", foundAccount.Username)
44 c.Locals("account", foundAccount)
45 c.Locals("token", token)
46 c.Locals("allowed", true)
47
48 return c.Next()
49}

Callers

nothing calls this directly

Calls 3

VerifyTokenFunction · 0.92
GetUserByUsernameFunction · 0.92
GetMethod · 0.80

Tested by

no test coverage detected