saas-starter icon indicating copy to clipboard operation
saas-starter copied to clipboard

User gets logged out after setting up stripe payment

Open jan10 opened this issue 1 year ago • 7 comments

When a user completes the setup for Stripe payment, they are unexpectedly logged out of their account.

Steps to Reproduce:

  1. Log in to the application.
  2. Navigate to the payment settings section.
  3. Select the option to set up Stripe payment.
  4. Complete the Stripe payment setup process.
  5. Observe that the user is logged out immediately after the setup is completed.

Screenshare

https://jam.dev/c/132a5f62-4b41-43c6-a328-4b6252ccd212

jan10 avatar Sep 16 '24 13:09 jan10

User is being redirected to the /signin page but he is not logged out, this can be fixed by either:

  • [ ] redirecting to the home page
  • [ ] when user is on /signin , if he is already authorized redirects to /dashboard ( i feel like this is the best option since /signin should only be accessible when you are logged out )

PS: I can create a PR on this later on today

MhemedAbderrahmen avatar Sep 16 '24 14:09 MhemedAbderrahmen

Huh, seems I introduced a regression here: https://github.com/leerob/next-saas-starter/pull/2/files. But I'm not really sure what it is.

It seems like after setting the cookie in the Route Handler for Stripe Checkout, it's empty when being read in the Middleware now when you redirect to /dashboard. If you look at dev tools, the cookie is successfully saved. If you reload the page, you see it.

This doesn't seem to be working either:

const sessionCookie = await setSession(user[0]);
const response = NextResponse.redirect(new URL('/dashboard', request.url));
response.headers.set('Set-Cookie', sessionCookie);
return response;

I'll have to dig more.

leerob avatar Sep 16 '24 16:09 leerob

User is being redirected to the /signin page but he is not logged out, this can be fixed by either:

  • [ ] redirecting to the home page
  • [ ] when user is on /signin , if he is already authorized redirects to /dashboard ( i feel like this is the best option since /signin should only be accessible when you are logged out )

PS: I can create a PR on this later on today

I had same issue but your article helped me.

mono300genuine avatar Sep 18 '24 05:09 mono300genuine

const sessionCookie = await setSession(user[0]); const response = NextResponse.next(); response.headers.set('Set-Cookie', sessionCookie); return response;

could you try this as some browsers might ignore Set-Cookie headers when they're part of a redirection response, you can handle redirect afterward

Taimoor2500 avatar Sep 19 '24 05:09 Taimoor2500

const sessionCookie = await setSession(user[0]); const response = NextResponse.next(); response.headers.set('Set-Cookie', sessionCookie); return response;

could you try this as some browsers might ignore Set-Cookie headers when they're part of a redirection response, you can handle redirect afterward

yes

mono300genuine avatar Sep 19 '24 05:09 mono300genuine

https://github.com/nextjs/saas-starter/pull/132 this might resolve the issue

imkrish7 avatar Apr 03 '25 17:04 imkrish7

I would like to contribute here. Can you please assign me. @jan10 @leerob

sujal12344 avatar Oct 02 '25 19:10 sujal12344