From 7a8ad8381e270312be6452a2e654b0b520e114e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Omar=20L=C3=B3pez?= Date: Tue, 28 Sep 2021 15:27:06 -0600 Subject: [PATCH] Fixes error when user cancels stripe integration (#813) * Fixes customer portal return ur * Attempt to fix portal CSRF issue * Fixes CSRF issue with Stripe redirect * Fixes error when user cancels stripe integration --- ee/pages/api/integrations/stripepayment/callback.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ee/pages/api/integrations/stripepayment/callback.ts b/ee/pages/api/integrations/stripepayment/callback.ts index d07d35fe06..038238eb6d 100644 --- a/ee/pages/api/integrations/stripepayment/callback.ts +++ b/ee/pages/api/integrations/stripepayment/callback.ts @@ -1,5 +1,6 @@ import { Prisma } from "@prisma/client"; import type { NextApiRequest, NextApiResponse } from "next"; +import { stringify } from "querystring"; import stripe, { StripeData } from "@ee/lib/stripe/server"; @@ -7,7 +8,7 @@ import { getSession } from "@lib/auth"; import prisma from "@lib/prisma"; export default async function handler(req: NextApiRequest, res: NextApiResponse) { - const { code } = req.query; + const { code, error, error_description } = req.query; // Check that user is authenticated const session = await getSession({ req: req }); @@ -16,6 +17,12 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) return; } + if (error) { + const query = stringify({ error, error_description }); + res.redirect("/integrations?" + query); + return; + } + const response = await stripe.oauth.token({ grant_type: "authorization_code", code: code.toString(),