Не получается сарвнить куку и параметры mux

Всем привет

func Welcome(w http.ResponseWriter, r *http.Request) {
    params := mux.Vars(r)
    name := strings.TrimSpace(params["username"])
    value := strings.TrimSpace(params["token"])
//здесь выводяся нужные мне значения, 
//значит по значению параметра username можно дальше найти куку в браузере по имени куки
    log.Println(name, value)
//здесь ищу в браузере куку имя которой совпадает с именем пользователя
    currentCookies, err := r.Cookie(name) 
//но кука по значению парметра username не находится 
//и отрабатывает if так как ошибка named cookie not present                    
//Смотрю в брузере куку и она имеет такое имя как значение параметра username
//поэтому не должно отрабатывать уловие. 
    if err != nil || currentCookies.Value != value {
        http.Redirect(w, r, "/validate/", http.StatusForbidden)
        return
    }
//функция из локального пакета
    logging.TemplateGetting(w, "welcome.html", "", currentCookies.Name)
}

Подскажите пожалуйста, почему отрабатывает условие, если кука есть? Как лечить? Вот имя куки Здесь выделил белым значения mux параметров. Они совпадают со значениями куки

На первом скрине имя и значение куки

На втором скрине белым выделил имя и значение параметров mux которые я пытаюсь сверить с name value куки. Видно что значения на первом и втором скрине идентичны друг другу


Ответы (1 шт):

Автор решения: umd

Структура куки при установке была такой

http.Cookie{
Name: "somename",
Value: somevalue,
}

Поле Path отсутствовало и поэтому устанавливалось автоматически в соответствие с url на котором находится пользователь во время установки куки.

Например, если на момент установки куки я нахожусь в /page/, то новая кука будет установлена с полем.

Path: "/page/",

И если потом попытаться получить куку браузера находясь в url /page/user/ то и r.Cookies() возвращает пустую строку, так как для поля

Path: "/page/user/", 

Не было утсановлено кук.

Пока что решил сделав структуру куки при установке куки

http.Cookie{
    Name: "somename",
    Value: somevalue,
    Path: "/"
    }

И при проверке больше не возвращается пустота, так как кука проверяется для всего сайта.

→ Ссылка