From 4667d34b46f6a341b190919524148c2ab882cc8b Mon Sep 17 00:00:00 2001 From: Evan Jarrett Date: Fri, 7 Nov 2025 22:43:22 -0600 Subject: [PATCH] try and persist session tokens --- pkg/auth/oauth/refresher.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkg/auth/oauth/refresher.go b/pkg/auth/oauth/refresher.go index 80e9840..f744bc4 100644 --- a/pkg/auth/oauth/refresher.go +++ b/pkg/auth/oauth/refresher.go @@ -134,6 +134,24 @@ func (r *Refresher) resumeSession(ctx context.Context, did string) (*oauth.Clien return nil, fmt.Errorf("failed to resume session: %w", err) } + // Set up callback to persist token updates to SQLite + // This ensures that when indigo automatically refreshes tokens, + // the new tokens are saved to the database immediately + session.PersistSessionCallback = func(callbackCtx context.Context, updatedData *oauth.ClientSessionData) { + if err := r.app.GetClientApp().Store.SaveSession(callbackCtx, *updatedData); err != nil { + slog.Error("Failed to persist OAuth session update", + "component", "oauth/refresher", + "did", did, + "sessionID", sessionID, + "error", err) + } else { + slog.Debug("Persisted OAuth token refresh to database", + "component", "oauth/refresher", + "did", did, + "sessionID", sessionID) + } + } + // Cache the session r.mu.Lock() r.sessions[did] = &SessionCache{