auth.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package middle
  2. import (
  3. "net/http"
  4. "strings"
  5. "github.com/ChineseSubFinder/ChineseSubFinder/pkg/types/backend"
  6. "github.com/ChineseSubFinder/ChineseSubFinder/pkg/common"
  7. "github.com/gin-gonic/gin"
  8. )
  9. func CheckAuth() gin.HandlerFunc {
  10. return func(context *gin.Context) {
  11. authHeader := context.Request.Header.Get("Authorization")
  12. fields := strings.Fields(authHeader)
  13. if len(fields) != 2 {
  14. context.JSON(http.StatusUnauthorized, backend.ReplyCheckAuth{Message: "Request Header Authorization Error"})
  15. context.Abort()
  16. return
  17. }
  18. nowAccessToken := fields[1]
  19. if nowAccessToken == "" || nowAccessToken != common.GetAccessToken() {
  20. context.JSON(http.StatusUnauthorized, backend.ReplyCheckAuth{Message: "AccessToken Error"})
  21. context.Abort()
  22. return
  23. }
  24. // 向下传递消息
  25. context.Next()
  26. }
  27. }
  28. func CheckApiAuth() gin.HandlerFunc {
  29. return func(context *gin.Context) {
  30. authHeader := context.Request.Header.Get("Authorization")
  31. if len(authHeader) <= 1 {
  32. context.JSON(http.StatusUnauthorized, backend.ReplyCheckAuth{Message: "Request Header Authorization Error"})
  33. context.Abort()
  34. return
  35. }
  36. nowAccessToken := strings.Fields(authHeader)[1]
  37. if nowAccessToken == "" {
  38. context.JSON(http.StatusUnauthorized, backend.ReplyCheckAuth{Message: "api_key_enabled == false or api_key is empty"})
  39. context.Abort()
  40. return
  41. } else if nowAccessToken != common.GetApiToken() {
  42. context.JSON(http.StatusUnauthorized, backend.ReplyCheckAuth{Message: "AccessToken Error"})
  43. context.Abort()
  44. return
  45. }
  46. // 向下传递消息
  47. context.Next()
  48. }
  49. }