tijl.dev-core/internal/handlers/auth.go
tijl b8d7a8c4cf
All checks were successful
build / build (push) Successful in 36s
release-tag / release-image (push) Successful in 16m28s
basic app implementation
2024-08-25 17:43:55 +02:00

53 lines
1.2 KiB
Go

package handlers
import (
"net/http"
"git.tijl.dev/tijl/tijl.dev-core/internal/oidc"
"git.tijl.dev/tijl/tijl.dev-core/internal/user"
"git.tijl.dev/tijl/tijl.dev-core/modules/i18n"
"git.tijl.dev/tijl/tijl.dev-core/modules/web"
"github.com/gofiber/fiber/v2"
)
func loginHandler(c *fiber.Ctx) error {
_, err := user.GetSession(c)
if err == nil {
return c.Redirect("/account")
} else {
data := *web.Common(c)
data["Title"] = i18n.Translate(c, "login")
return c.Render("login", data, "layouts/base")
}
}
func loggedinHandler(c *fiber.Ctx) error {
_, err := user.GetSession(c)
if err != nil {
return c.Redirect("/login")
} else {
data := *web.Common(c)
data["Title"] = i18n.Translate(c, "account")
return c.Render("loggedin", data, "layouts/base")
}
}
func authHandler(c *fiber.Ctx) error {
_, err := user.GetSession(c)
if err == nil {
return c.Redirect("/account")
} else {
return oidc.HandleRedirect(c)
}
}
func logoutHandler(c *fiber.Ctx) error {
_, err := user.GetSession(c)
if err == nil {
c.ClearCookie("session", "state")
return c.Redirect("/login", http.StatusOK)
} else {
return c.Redirect("/login", http.StatusUnauthorized)
}
}