aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/api/auth_middleware.go
diff options
context:
space:
mode:
Diffstat (limited to 'backend/api/auth_middleware.go')
-rw-r--r--backend/api/auth_middleware.go34
1 files changed, 4 insertions, 30 deletions
diff --git a/backend/api/auth_middleware.go b/backend/api/auth_middleware.go
index f2a3987..a588185 100644
--- a/backend/api/auth_middleware.go
+++ b/backend/api/auth_middleware.go
@@ -1,17 +1,13 @@
package api
import (
- "context"
-
"github.com/labstack/echo/v4"
"albatross-2026-backend/auth"
"albatross-2026-backend/db"
+ "albatross-2026-backend/session"
)
-type sessionIDContextKey struct{}
-type userContextKey struct{}
-
func SessionCookieMiddleware(q db.Querier) echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
@@ -25,31 +21,14 @@ func SessionCookieMiddleware(q db.Querier) echo.MiddlewareFunc {
return next(c)
}
ctx := c.Request().Context()
- ctx = context.WithValue(ctx, sessionIDContextKey{}, hashedID)
- ctx = context.WithValue(ctx, userContextKey{}, &user)
+ ctx = session.SetSessionIDInContext(ctx, hashedID)
+ ctx = session.SetUserInContext(ctx, &user)
c.SetRequest(c.Request().WithContext(ctx))
return next(c)
}
}
}
-func GetSessionIDFromContext(ctx context.Context) (string, bool) {
- sessionID, ok := ctx.Value(sessionIDContextKey{}).(string)
- return sessionID, ok
-}
-
-func GetUserFromContext(ctx context.Context) (*db.User, bool) {
- user, ok := ctx.Value(userContextKey{}).(*db.User)
- return user, ok
-}
-
-// SetUserInContext sets a user in the context. Intended for testing.
-func SetUserInContext(ctx context.Context, user *db.User) context.Context {
- return context.WithValue(ctx, userContextKey{}, user)
-}
-
-type clientIPContextKey struct{}
-
// ClientIPMiddleware extracts the client IP from echo.Context.RealIP()
// and stores it in the request's context.Context so that handlers
// receiving only context.Context (via generated code) can access it.
@@ -57,14 +36,9 @@ func ClientIPMiddleware() echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
ip := c.RealIP()
- ctx := context.WithValue(c.Request().Context(), clientIPContextKey{}, ip)
+ ctx := session.SetClientIPInContext(c.Request().Context(), ip)
c.SetRequest(c.Request().WithContext(ctx))
return next(c)
}
}
}
-
-func GetClientIPFromContext(ctx context.Context) string {
- ip, _ := ctx.Value(clientIPContextKey{}).(string)
- return ip
-}