Fetch userinfo in auth middleware

This commit is contained in:
2024-10-22 22:58:09 +08:00
parent 406031b966
commit 0f4112e08b
13 changed files with 320 additions and 150 deletions

View File

@@ -1,14 +1,18 @@
package auth
import "github.com/gofiber/fiber/v2"
import (
"github.com/gofiber/fiber/v2"
)
func SoftAuthMiddleware(c *fiber.Ctx) error {
func AuthContextMiddleware(c *fiber.Ctx) error {
atk := tokenExtract(c)
c.Locals("nex_token", atk)
c.Locals("nex_in_token", atk)
if claims, err := tokenRead(atk); err == nil && claims != nil {
c.Locals("nex_principal", claims)
// TODO fetch user info
if err = userinfoFetch(c); err != nil {
return err
}
} else if err != nil {
c.Locals("nex_auth_error", err)
}
@@ -16,7 +20,7 @@ func SoftAuthMiddleware(c *fiber.Ctx) error {
return c.Next()
}
func HardAuthMiddleware(c *fiber.Ctx) error {
func AuthMiddleware(c *fiber.Ctx) error {
if c.Locals("nex_principal") == nil {
err := c.Locals("nex_auth_error").(error)
return fiber.NewError(fiber.StatusUnauthorized, err.Error())