1
0

auth.go 1.5 KB

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