authorize_survey_token.go 785 B

123456789101112131415161718192021222324252627282930313233
  1. package middleware
  2. import (
  3. "surveyService/response"
  4. "surveyService/service/survey_token"
  5. "surveyService/util/constants"
  6. "surveyService/validators"
  7. "github.com/gin-gonic/gin"
  8. )
  9. func AuthorizeSurveyToken() gin.HandlerFunc {
  10. return func(c *gin.Context) {
  11. token := c.Request.Header.Get("surveyToken")
  12. if token == "" {
  13. c.Set(constants.SurveyTokenCacheKey, "")
  14. c.Set(constants.SurveyTokenDataCacheKey, nil)
  15. c.Next()
  16. return
  17. }
  18. var currentUser *validators.SurveyToken
  19. var err *response.ErrCode
  20. // 拿到用户系统的资料
  21. currentUser, err = survey_token.GetSurveyTokenData(token)
  22. if err != nil {
  23. response.Fail(c, err)
  24. return
  25. }
  26. c.Set(constants.SurveyTokenCacheKey, token)
  27. c.Set(constants.SurveyTokenDataCacheKey, currentUser)
  28. c.Next()
  29. }
  30. }