From 0acea3b95f28397fff3abffe2e337a83310d482e Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 10 Apr 2026 15:06:34 +0000 Subject: [PATCH] fix: Skip OAuth if already logged in, go straight to checkout If user has existing session from Trinity Console login, /stripe/auth now redirects directly to /stripe/checkout instead of re-triggering Discord OAuth. Chronicler #75 --- services/arbiter-3.0/src/routes/stripe.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/services/arbiter-3.0/src/routes/stripe.js b/services/arbiter-3.0/src/routes/stripe.js index 45f3118..df34fba 100644 --- a/services/arbiter-3.0/src/routes/stripe.js +++ b/services/arbiter-3.0/src/routes/stripe.js @@ -30,7 +30,8 @@ router.options('/create-checkout-session', cors(corsOptions)); /** * STRIPE AUTH - Entry point from website * GET /stripe/auth?tier=X - * Stores tier in session, redirects to Discord OAuth + * If already logged in, goes straight to checkout + * If not, stores tier in session and redirects to Discord OAuth */ router.get('/auth', (req, res) => { const tierLevel = req.query.tier; @@ -39,6 +40,11 @@ router.get('/auth', (req, res) => { return res.status(400).send('Invalid tier level. Please return to the subscribe page and try again.'); } + // If user is already authenticated, skip OAuth and go straight to checkout + if (req.user && req.user.id) { + return res.redirect(`/stripe/checkout?tier=${tierLevel}`); + } + // Store tier in session for after OAuth callback req.session.pendingCheckoutTier = parseInt(tierLevel);