From c34da3b1ba33cc738133f551362f3e1d86e28325 Mon Sep 17 00:00:00 2001 From: daru Date: Mon, 18 Apr 2022 16:57:45 +0200 Subject: [PATCH] GET Auth --- ober.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ober.go b/ober.go index 152b7ee..46e6f2d 100644 --- a/ober.go +++ b/ober.go @@ -16,6 +16,7 @@ func RunWebserv() { r := router.New() r.GET("/", Headers(Start)) r.GET("/api/season", Headers(Season)) + r.GET("/api/auth", Headers(AuthTest)) r.GET("/api/anime/{id}", Headers(AnimeGet)) r.GET("/api/animesearch/", Headers(AnimeSearchGet)) r.GET("/api/user/{user?}", Headers(UserGet)) @@ -41,6 +42,21 @@ func Start(ctx *fasthttp.RequestCtx) { ctx.SetStatusCode(fasthttp.StatusOK) } +func AuthTest(ctx *fasthttp.RequestCtx) { + auth := ctx.Request.Header.Peek("X-HUSO-AUTH") + if ctx.UserValue("user") == nil || auth == nil || string(auth) == "" || string(ctx.Request.Header.ContentType()) != "application/json" { + ctx.SetStatusCode(fasthttp.StatusBadRequest) + return + } + username := fmt.Sprintf("%s", ctx.UserValue("user")) + legit, _ := GheddoAuth(username, string(auth)) + if !legit { + ctx.SetStatusCode(fasthttp.StatusUnauthorized) + return + } + ctx.SetStatusCode(fasthttp.StatusOK) +} + func Season(ctx *fasthttp.RequestCtx) { data, err := seasoncache.Get(seasonApiJikan) if err != nil {