Дропаются символы при установке куки
Всем привет
func GetHandler(w http.ResponseWriter, r *http.Request){
http.ServeFile(w, r, "./login.html")
}
func GetUName(w http.ResponseWriter, r *http.Request) string {
r.ParseForm()
name := r.FormValue("name")
return name
}
func GetUAgent(r *http.Request) string {
agent := r.Header.Get("User-Agent")
return agent
}
func GetUIp(r *http.Request) string {
host, _, _ := net.SplitHostPort(r.RemoteAddr)
return host
}
func MakeCookie(w http.ResponseWriter, r *http.Request) (string, string) {
name := GetUName(w, r)
ip := GetUIp(r)
uagent := GetUAgent(r)
return ip + uagent + name, name
}
func FindingUname(w http.ResponseWriter, r *http.Request) []string {
name := GetUName(w, r)
db, _ := sql.Open("postgres", dbconnect)
rowsUname, _ := db.Query("select cookie from AuthData where username=$1", name)
db.Close()
var Name []string
var n string
for rowsUname.Next() {
rowsUname.Scan(&n)
Name = append(Name, n)
}
rowsUname.Close()
return Name
}
func RangeUnames(w http.ResponseWriter, r *http.Request) {
cookie := FindingUname(w, r)
CookieExample, _ := MakeCookie(w, r)
for i := 0; i < len(cookie); i++ {
if CookieExample == cookie[i] {
http.SetCookie(w, &http.Cookie{Name: "user", Value: CookieExample})
}
}
}
Функция MakeCookie() создает куку следующего вида
192.168.1.100Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36huilakakoito
Но при попытке установить эту куку в браузер устанавливается ПОЧТИ полностью идентичная кука
192.168.1.100Mozilla/5.0 (X11 Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36huilakakoito
а в лог выводится
net/http: invalid byte ';' in Cookie.Value; dropping invalid bytes
Мне же нужно чтобы устанавливалась всегда полностью идентичная кука так как эта кука заносится в базу и в дальнейшем сверяется кука в браузере и кука в базе и из-за того что в браузере дропнулась точка с запятой, эти куки никогда не проходят проверку на идентичность из-за чего сервер некорректно обрабатывает подключение пользователя. Подскажите пожалуйста, как сделать чтобы не дропалась точка с запятой?и вообще возможно ли это?