diff --git a/internal/server/middleware/auth/session.go b/internal/server/middleware/auth/session.go index 606afc5..de98fbf 100644 --- a/internal/server/middleware/auth/session.go +++ b/internal/server/middleware/auth/session.go @@ -11,6 +11,7 @@ import ( sessionmiddleware "git.maronato.dev/maronato/goshort/internal/server/middleware/session" userservice "git.maronato.dev/maronato/goshort/internal/service/user" "git.maronato.dev/maronato/goshort/internal/storage/models" + "git.maronato.dev/maronato/goshort/internal/util/logging" "github.com/alexedwards/scs/v2" ) @@ -88,8 +89,14 @@ func UpdateSession(ctx context.Context, r *http.Request) { } func LoginUser(ctx context.Context, user *models.User, r *http.Request) { + l := logging.FromCtx(ctx) + manager := sessionmiddleware.SessionManagerFromCtx(ctx) + l.DebugContext(ctx, "got session manager", "manager", manager) + + l.DebugContext(ctx, "Logging in user", "username", user.Username, "sessionToken", manager.Token(ctx)) + manager.Put(ctx, sessionUserKey, user.Username) manager.Put(ctx, sessionCreatedAtKey, time.Now().Format(time.RFC3339)) // Update session diff --git a/internal/server/middleware/session/session.go b/internal/server/middleware/session/session.go index 95c3b9b..99eb926 100644 --- a/internal/server/middleware/session/session.go +++ b/internal/server/middleware/session/session.go @@ -43,7 +43,7 @@ func SessionManager(cfg *config.Config) func(http.Handler) http.Handler { func SessionManagerFromCtx(ctx context.Context) *scs.SessionManager { sessionManager, err := ctx.Value(sessionContextKey{}).(*scs.SessionManager) - if !err { + if !err || sessionManager == nil { // This should never happen. panic("session manager not found in context") } diff --git a/internal/server/oidc/handler.go b/internal/server/oidc/handler.go index 36f4a59..fb1e905 100644 --- a/internal/server/oidc/handler.go +++ b/internal/server/oidc/handler.go @@ -118,6 +118,8 @@ func (h *OIDCHandler) Callback(w http.ResponseWriter, r *http.Request) { // Now that user is guaranteed to exist, log them in span.AddEvent("user found or created") + l.DebugContext(ctx, "logging in user", "user", user, "email", userInfo.Email, "username", user.Username) + authmiddleware.LoginUser(ctx, user, r) span.AddEvent("logged in user")