-
Notifications
You must be signed in to change notification settings - Fork 0
/
cookie.go
executable file
·35 lines (29 loc) · 970 Bytes
/
cookie.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package zhttp
import "net/http"
// ClientSetCookie client set cookie.
func ClientSetCookie(request *http.Request, data map[string]string) {
for name, value := range data {
cookie := &http.Cookie{Name: name, Value: value, Path: "/", MaxAge: 86400}
request.AddCookie(cookie)
}
}
// ServerSetCookie server set cookie.
func ServerSetCookie(rw http.ResponseWriter, data map[string]string) {
for name, value := range data {
cookie := &http.Cookie{Name: name, Value: value, Path: "/", MaxAge: 86400}
http.SetCookie(rw, cookie)
}
}
// ServerDelCookie server revoke cookie.
func ServerDelCookie(rw http.ResponseWriter, name string) {
cookie := &http.Cookie{Name: name, Path: "/", MaxAge: -1}
http.SetCookie(rw, cookie)
}
// ServerGetCookie server get cookie value from request by key
func ServerGetCookie(request *http.Request, key string) (string, error) {
cookie, err := request.Cookie(key)
if err != nil {
return "", err
}
return cookie.Value, nil
}