diff options
author | Cara Salter <cara@devcara.com> | 2023-09-01 10:08:55 -0400 |
---|---|---|
committer | Cara Salter <cara@devcara.com> | 2023-09-01 10:08:55 -0400 |
commit | 5036788df84b3963dfff174161224f88d1dfd59d (patch) | |
tree | 0224de4aca9ba019c7d6fbf03ebde819eb718904 /internal/router.go | |
parent | cf2a9e9c8c78dd175620a32f3292e5a56f6abc28 (diff) | |
download | hkgi-master.tar.gz hkgi-master.zip |
Diffstat (limited to 'internal/router.go')
-rw-r--r-- | internal/router.go | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/internal/router.go b/internal/router.go index 8c6bb45..79f8d82 100644 --- a/internal/router.go +++ b/internal/router.go @@ -1,7 +1,49 @@ package internal -import "github.com/gofiber/fiber/v2" +import ( + "context" + "log" + + "git.devcara.com/hkgi/database" + "git.devcara.com/hkgi/internal/routers" + "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/middleware/basicauth" + "golang.org/x/crypto/bcrypt" +) + +type User struct { + Username string + Password string +} func SetupRoutes(app *fiber.App) { + app.Use(basicauth.New(basicauth.Config{ + Authorizer: func(username, password string) bool { + db,err := database.DB.Acquire() + + if (err != nil) { + log.Fatal(err.Error()) + } + + var user User + err = db.QueryRow(context.Background(), "SELECT username, password FROM steads WHERE username=$1", username).Scan(&user) + + if (err != nil) { + return false; + } + + err = bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(password)) + + if (err == nil) { + return true + } + + return false + }, + Unauthorized: func(c *fiber.Ctx) error { + return c.SendStatus(403) + }, + })) + routers.SetupHkgiRoutes(app) } |