login_ware.go 984 B

123456789101112131415161718192021222324252627282930313233343536
  1. package middleware
  2. import (
  3. "git.qianqiusoft.com/qianqiusoft/light-apiengine/config"
  4. sysmodels "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  5. "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
  6. "git.qianqiusoft.com/qianqiusoft/light-apiengine/wfclient"
  7. "github.com/gin-gonic/gin"
  8. )
  9. func LoginWare() gin.HandlerFunc {
  10. return func(c *gin.Context) {
  11. //验证登陆
  12. token := c.GetHeader("token")
  13. if token == "" {
  14. c.AbortWithStatusJSON(401, sysmodels.SysReturn{401, "token is empty", ""})
  15. c.Redirect(302, "/login")
  16. return
  17. }
  18. tk := utils.GetGlobalTokenStore().Get(token)
  19. if tk == nil {
  20. c.AbortWithStatusJSON(401, sysmodels.SysReturn{401, "token Invalid", ""})
  21. c.Redirect(302, "/login")
  22. return
  23. }
  24. wfendpoint := config.AppConfig.GetKey("wfendpoint")
  25. wfclient.Instance().Init(wfendpoint, tk.UserId, tk.LoginID, tk.AccessToken, tk.Domain)
  26. c.Set("token", tk)
  27. c.Set("user_id", tk.UserId)
  28. c.Set("domain", tk.Domain)
  29. c.Next()
  30. }
  31. }