implemented login logic
This commit is contained in:
+12
-2
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"log"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@@ -109,13 +110,22 @@ func handleUnauthenticatedMessage(ctx context.Context, conn *websocket.Conn, msg
|
||||
conn.Close(websocket.StatusPolicyViolation, "invalid token")
|
||||
return
|
||||
}
|
||||
user, err := GetUserData(ctx, subject)
|
||||
|
||||
var subjectId uint32
|
||||
parsed, err := strconv.ParseUint(subject, 10, 32)
|
||||
subjectId = uint32(parsed)
|
||||
if err != nil {
|
||||
conn.Close(websocket.StatusPolicyViolation, "invalid token")
|
||||
return
|
||||
}
|
||||
|
||||
user, err := GetUserDataById(ctx, subjectId)
|
||||
if err != nil {
|
||||
conn.Close(websocket.StatusPolicyViolation, "invalid token")
|
||||
return
|
||||
}
|
||||
mu.Lock()
|
||||
authenticatedConnections = append(authenticatedConnections, AuthConnection{connection: conn, user: user})
|
||||
authenticatedConnections = append(authenticatedConnections, AuthConnection{connection: conn, user: *user})
|
||||
mu.Unlock()
|
||||
sendAndCloseIfFails(conn, map[string]any{
|
||||
"authAs": user.Name,
|
||||
|
||||
Reference in New Issue
Block a user