admin.go 889 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package middleware
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/lejianwen/rustdesk-api/v2/http/response"
  5. "github.com/lejianwen/rustdesk-api/v2/service"
  6. )
  7. // AdminAuth 后台权限验证中间件
  8. func AdminAuth() gin.HandlerFunc {
  9. return func(c *gin.Context) {
  10. //测试先关闭
  11. token := c.GetHeader("api-token")
  12. if token == "" {
  13. response.Fail(c, 403, "请先登录")
  14. c.Abort()
  15. return
  16. }
  17. user, ut := service.AllService.UserService.InfoByAccessToken(token)
  18. if user.Id == 0 {
  19. response.Fail(c, 403, "请先登录")
  20. c.Abort()
  21. return
  22. }
  23. if !service.AllService.UserService.CheckUserEnable(user) {
  24. c.JSON(401, gin.H{
  25. "error": "Unauthorized",
  26. })
  27. c.Abort()
  28. return
  29. }
  30. c.Set("curUser", user)
  31. c.Set("token", token)
  32. //如果时间小于1天,token自动续期
  33. service.AllService.UserService.AutoRefreshAccessToken(ut)
  34. c.Next()
  35. }
  36. }