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
pull/710/head^2
Omar López 2021-09-28 15:27:06 -06:00 committed by GitHub
parent f8a4f81991
commit 7a8ad8381e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 1 deletions

View File

@ -1,5 +1,6 @@
import { Prisma } from "@prisma/client"; import { Prisma } from "@prisma/client";
import type { NextApiRequest, NextApiResponse } from "next"; import type { NextApiRequest, NextApiResponse } from "next";
import { stringify } from "querystring";
import stripe, { StripeData } from "@ee/lib/stripe/server"; import stripe, { StripeData } from "@ee/lib/stripe/server";
@ -7,7 +8,7 @@ import { getSession } from "@lib/auth";
import prisma from "@lib/prisma"; import prisma from "@lib/prisma";
export default async function handler(req: NextApiRequest, res: NextApiResponse) { 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 // Check that user is authenticated
const session = await getSession({ req: req }); const session = await getSession({ req: req });
@ -16,6 +17,12 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
return; return;
} }
if (error) {
const query = stringify({ error, error_description });
res.redirect("/integrations?" + query);
return;
}
const response = await stripe.oauth.token({ const response = await stripe.oauth.token({
grant_type: "authorization_code", grant_type: "authorization_code",
code: code.toString(), code: code.toString(),