common.go 665 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package main
  2. import (
  3. "net/http"
  4. )
  5. type ErrorRet struct {
  6. Errno int `json:"errno"`
  7. Error string `json:"error"`
  8. }
  9. func getSession(req *http.Request) (*Session, bool) {
  10. var sessid string
  11. cookies := req.Cookies()
  12. if len(cookies) > 0 {
  13. for _, item := range cookies {
  14. if item.Name == "sessid" && item.Value != "" {
  15. sessid = item.Value
  16. break
  17. }
  18. }
  19. }
  20. if sessid == "" {
  21. return nil, false
  22. } else {
  23. return SessPoll.Get(sessid)
  24. }
  25. }
  26. func checkLogin(resp http.ResponseWriter, req *http.Request) (*Session, bool) {
  27. sess, ok := getSession(req)
  28. if !ok {
  29. resp.Header().Set("Location", "/login")
  30. resp.WriteHeader(302)
  31. }
  32. return sess, ok
  33. }