session.go 607 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. @Time : 2019-08-22 14:33
  3. @Author : zr
  4. */
  5. package middleware
  6. import (
  7. "video_course/lib/session"
  8. "video_course/model"
  9. "github.com/ZR233/session/serr"
  10. "github.com/gin-gonic/gin"
  11. )
  12. func Session() gin.HandlerFunc {
  13. return func(c *gin.Context) {
  14. token := c.PostForm("token")
  15. if token == "" {
  16. token = c.Param("token")
  17. }
  18. if token != "" {
  19. sm := session.GetSessionManager()
  20. sess, err := sm.FindByToken(token)
  21. if err != nil {
  22. if err != serr.TokenNotFound {
  23. panic(err)
  24. }
  25. } else {
  26. sess_ := model.NewSession(sess)
  27. c.Set("session", sess_)
  28. }
  29. }
  30. c.Next()
  31. }
  32. }