diff options
Diffstat (limited to 'utils/auth/auth.go')
| -rw-r--r-- | utils/auth/auth.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/utils/auth/auth.go b/utils/auth/auth.go new file mode 100644 index 0000000..7b8f260 --- /dev/null +++ b/utils/auth/auth.go @@ -0,0 +1,26 @@ +package auth + +import ( + "imageboard/models" + + "github.com/gofiber/fiber/v2" +) + +func GetCurrentUser(ctx *fiber.Ctx) *models.User { + if user, ok := ctx.Locals("User").(*models.User); ok { + return user + } + return nil +} + +func IsAuthenticated(ctx *fiber.Ctx) bool { + return GetCurrentUser(ctx) != nil +} + +func GetRedirectURL(ctx *fiber.Ctx) string { + referer := ctx.Get("Referer") + if referer != "" && referer != ctx.BaseURL()+"/login" && referer != ctx.BaseURL()+"/register" { + return referer + } + return "/" +} |
