package blog import ( "encoding/json" "net/http" "strconv" "strings" ) func readJSON(r *http.Request, data interface{}) error { decoder := json.NewDecoder(r.Body) return decoder.Decode(data) } func writeJSON(w http.ResponseWriter, data interface{}) error { if d, err := json.Marshal(data); err != nil { return err } else { w.Header().Set("Content-Length", strconv.Itoa(len(d))) w.Header().Set("Content-Type", "application/json") w.Write(d) } return nil } func tokenFromRequest(r *http.Request) string { var token string tokencookie, e := r.Cookie("token") if e == nil { token = tokencookie.Value } if token == "" { tmp := strings.SplitN(r.Header.Get("Authorization"), " ", 2) if strings.ToLower(tmp[0]) != "bearer" { return "" } token = tmp[1] } return token }