v0.0.17.3 Переработан websocket, добавлена обработка ping/pong
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
2145affdac
commit
68577d1878
@ -54,23 +54,30 @@ func (h *ChatHandler) HandleWebSocket(w http.ResponseWriter, r *http.Request) {
|
|||||||
log.Printf("WebSocket: токен из куки: %s", token)
|
log.Printf("WebSocket: токен из куки: %s", token)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Если нет в куках, проверяем заголовок Authorization
|
// Из заголовка Authorization
|
||||||
|
if authHeader := r.Header.Get("Authorization"); authHeader != "" {
|
||||||
|
token = strings.TrimPrefix(authHeader, "Bearer ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Из параметра URL
|
||||||
if token == "" {
|
if token == "" {
|
||||||
authHeader := r.Header.Get("Authorization")
|
token = r.URL.Query().Get("token")
|
||||||
if authHeader != "" {
|
}
|
||||||
token = strings.TrimPrefix(authHeader, "Bearer ")
|
|
||||||
log.Printf("WebSocket: токен из заголовка: %s", token)
|
// Из куков
|
||||||
|
if token == "" {
|
||||||
|
if cookie, err := r.Cookie("accessToken"); err == nil {
|
||||||
|
token = cookie.Value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Если токен не найден - возвращаем 401
|
|
||||||
if token == "" {
|
if token == "" {
|
||||||
log.Println("WebSocket: токен не найден ни в куках, ни в заголовках")
|
log.Println("WebSocket: токен не найден")
|
||||||
http.Error(w, "Token is required", http.StatusUnauthorized)
|
http.Error(w, "Token is required", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. Валидация токена
|
// Валидация токена
|
||||||
userID, err := h.tokenAuth.ValidateAccessToken(token)
|
userID, err := h.tokenAuth.ValidateAccessToken(token)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("WebSocket: ошибка валидации токена: %v", err)
|
log.Printf("WebSocket: ошибка валидации токена: %v", err)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user