sessionfilter.go 951 B

123456789101112131415161718192021222324252627282930
  1. package filter
  2. import (
  3. "app.yhyue.com/moapp/jybase/go-xweb/xweb"
  4. "net/http"
  5. "strings"
  6. )
  7. // 登录限制
  8. type sessionfilter struct {
  9. App *xweb.App
  10. }
  11. // 继承过滤器方法
  12. func (l *sessionfilter) Do(w http.ResponseWriter, req *http.Request) bool {
  13. session := l.App.SessionManager.Session(req, w)
  14. rul := req.URL.Path
  15. if strings.HasPrefix(rul, "/jydocs/search") || strings.HasPrefix(rul, "/jydocs/search") ||
  16. strings.HasPrefix(rul, "/jydocs/detail") || strings.HasPrefix(rul, "/jydocs/detail/recommend") ||
  17. strings.HasPrefix(rul, "/jydocs/topList") || strings.HasPrefix(rul, "/jydocs/activityList") ||
  18. strings.HasPrefix(rul, "/jydocs/getAdvertisement") || strings.HasPrefix(rul, "/jydocs/indexTag") ||
  19. strings.HasPrefix(rul, "/jydocs/share/img") || strings.HasPrefix(rul, "/jydocs/user/info") {
  20. return true
  21. }
  22. if session.Get("userId") == nil {
  23. w.Write([]byte("{\"error\":\"需要登录!\"}"))
  24. return false
  25. }
  26. return true
  27. }