mirror of
https://github.com/astaxie/beego.git
synced 2024-11-26 03:31:29 +00:00
commit
d02e32fa51
@ -29,6 +29,7 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// BeegoOutput does work for sending response header.
|
// BeegoOutput does work for sending response header.
|
||||||
@ -98,23 +99,25 @@ func (output *BeegoOutput) Body(content []byte) {
|
|||||||
func (output *BeegoOutput) Cookie(name string, value string, others ...interface{}) {
|
func (output *BeegoOutput) Cookie(name string, value string, others ...interface{}) {
|
||||||
var b bytes.Buffer
|
var b bytes.Buffer
|
||||||
fmt.Fprintf(&b, "%s=%s", sanitizeName(name), sanitizeValue(value))
|
fmt.Fprintf(&b, "%s=%s", sanitizeName(name), sanitizeValue(value))
|
||||||
|
|
||||||
|
//fix cookie not work in IE
|
||||||
if len(others) > 0 {
|
if len(others) > 0 {
|
||||||
switch v := others[0].(type) {
|
switch v := others[0].(type) {
|
||||||
case int:
|
case int:
|
||||||
if v > 0 {
|
if v > 0 {
|
||||||
fmt.Fprintf(&b, "; Max-Age=%d", v)
|
fmt.Fprintf(&b, "; Expires=%s; Max-Age=%d", time.Now().Add(time.Duration(v) * time.Second).UTC().Format(time.RFC1123), v)
|
||||||
} else if v < 0 {
|
} else if v < 0 {
|
||||||
fmt.Fprintf(&b, "; Max-Age=0")
|
fmt.Fprintf(&b, "; Max-Age=0")
|
||||||
}
|
}
|
||||||
case int64:
|
case int64:
|
||||||
if v > 0 {
|
if v > 0 {
|
||||||
fmt.Fprintf(&b, "; Max-Age=%d", v)
|
fmt.Fprintf(&b, "; Expires=%s; Max-Age=%d", time.Now().Add(time.Duration(v) * time.Second).UTC().Format(time.RFC1123), v)
|
||||||
} else if v < 0 {
|
} else if v < 0 {
|
||||||
fmt.Fprintf(&b, "; Max-Age=0")
|
fmt.Fprintf(&b, "; Max-Age=0")
|
||||||
}
|
}
|
||||||
case int32:
|
case int32:
|
||||||
if v > 0 {
|
if v > 0 {
|
||||||
fmt.Fprintf(&b, "; Max-Age=%d", v)
|
fmt.Fprintf(&b, "; Expires=%s; Max-Age=%d", time.Now().Add(time.Duration(v) * time.Second).UTC().Format(time.RFC1123), v)
|
||||||
} else if v < 0 {
|
} else if v < 0 {
|
||||||
fmt.Fprintf(&b, "; Max-Age=0")
|
fmt.Fprintf(&b, "; Max-Age=0")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user