diff --git a/apps/client/pages/api/auth/[...nextauth].ts b/apps/client/pages/api/auth/[...nextauth].ts index 339eab48..ce370382 100644 --- a/apps/client/pages/api/auth/[...nextauth].ts +++ b/apps/client/pages/api/auth/[...nextauth].ts @@ -1,4 +1,4 @@ -import NextAuth from 'next-auth' +import NextAuth, { type SessionStrategy } from 'next-auth' import CredentialsProvider from 'next-auth/providers/credentials' import { z } from 'zod' import type { SharedType } from '@maybe-finance/shared' @@ -23,6 +23,10 @@ export const authOptions = { pages: { signIn: '/login', }, + session: { + strategy: 'jwt' as SessionStrategy, + maxAge: 14 * 24 * 60 * 60, // 30 Days + }, providers: [ CredentialsProvider({ name: 'Credentials', diff --git a/apps/client/pages/login.tsx b/apps/client/pages/login.tsx index 4424c6f9..d6810c1f 100644 --- a/apps/client/pages/login.tsx +++ b/apps/client/pages/login.tsx @@ -27,7 +27,7 @@ export default function LoginPage() { await signIn('credentials', { email, password, - callbackUrl: '/', + redirect: false, }) } diff --git a/libs/client/features/src/layout/MenuPopover.tsx b/libs/client/features/src/layout/MenuPopover.tsx index 7a1cbcd1..6413d08f 100644 --- a/libs/client/features/src/layout/MenuPopover.tsx +++ b/libs/client/features/src/layout/MenuPopover.tsx @@ -1,4 +1,4 @@ -import { useAuth0 } from '@auth0/auth0-react' +import { signOut } from 'next-auth/react' import { Menu } from '@maybe-finance/design-system' import type { ComponentProps } from 'react' import { @@ -16,8 +16,6 @@ export function MenuPopover({ placement?: ComponentProps['placement'] isHeader: boolean }) { - const { logout } = useAuth0() - return ( {icon} @@ -31,11 +29,7 @@ export function MenuPopover({ } href="/data-editor"> Fix my data - } - destructive={true} - onClick={() => logout({ logoutParams: { returnTo: window.location.origin } })} - > + } destructive={true} onClick={() => signOut()}> Log out diff --git a/libs/client/features/src/onboarding/OnboardingGuard.tsx b/libs/client/features/src/onboarding/OnboardingGuard.tsx index 76976980..25e71746 100644 --- a/libs/client/features/src/onboarding/OnboardingGuard.tsx +++ b/libs/client/features/src/onboarding/OnboardingGuard.tsx @@ -3,7 +3,7 @@ import { MainContentOverlay, useUserApi } from '@maybe-finance/client/shared' import { LoadingSpinner } from '@maybe-finance/design-system' import { useRouter } from 'next/router' import type { SharedType } from '@maybe-finance/shared' -import { useAuth0 } from '@auth0/auth0-react' +import { signOut } from 'next-auth/react' function shouldRedirect(pathname: string, data?: SharedType.OnboardingResponse) { if (!data) return false @@ -14,7 +14,6 @@ function shouldRedirect(pathname: string, data?: SharedType.OnboardingResponse) export function OnboardingGuard({ children }: PropsWithChildren) { const router = useRouter() - const { logout } = useAuth0() const { useOnboarding } = useUserApi() const onboarding = useOnboarding('main', { onSuccess(data) { @@ -29,7 +28,7 @@ export function OnboardingGuard({ children }: PropsWithChildren) { logout({ logoutParams: { returnTo: window.location.origin } })} + onAction={() => signOut()} >

Contact us if this issue persists.

diff --git a/libs/client/features/src/onboarding/OnboardingNavbar.tsx b/libs/client/features/src/onboarding/OnboardingNavbar.tsx index f2ac24ce..d88454c2 100644 --- a/libs/client/features/src/onboarding/OnboardingNavbar.tsx +++ b/libs/client/features/src/onboarding/OnboardingNavbar.tsx @@ -1,4 +1,4 @@ -import { useAuth0 } from '@auth0/auth0-react' +import { signOut } from 'next-auth/react' import { ProfileCircle } from '@maybe-finance/client/shared' import { Button, Menu } from '@maybe-finance/design-system' import type { SharedType } from '@maybe-finance/shared' @@ -15,8 +15,6 @@ type Props = { } export function OnboardingNavbar({ steps, currentStep, onBack }: Props) { - const { logout } = useAuth0() - const groups = uniqBy(steps, 'group') .map((s) => s.group) .filter((g): g is string => g != null) @@ -85,9 +83,7 @@ export function OnboardingNavbar({ steps, currentStep, onBack }: Props) { } destructive={true} - onClick={() => - logout({ logoutParams: { returnTo: window.location.origin } }) - } + onClick={() => signOut()} > Log out diff --git a/libs/client/features/src/onboarding/steps/CountryWaitlist.tsx b/libs/client/features/src/onboarding/steps/CountryWaitlist.tsx index 0cae4bd9..ebbca2fe 100644 --- a/libs/client/features/src/onboarding/steps/CountryWaitlist.tsx +++ b/libs/client/features/src/onboarding/steps/CountryWaitlist.tsx @@ -2,16 +2,15 @@ import Link from 'next/link' import { useUserApi } from '@maybe-finance/client/shared' import { Button } from '@maybe-finance/design-system' import toast from 'react-hot-toast' -import { useAuth0 } from '@auth0/auth0-react' +import { signOut } from 'next-auth/react' export function CountryWaitlist({ country }: { country?: string }) { - const { logout } = useAuth0() const { useDelete } = useUserApi() const deleteUser = useDelete({ onSuccess() { toast.success(`Account deleted`) - setTimeout(() => logout({ logoutParams: { returnTo: window.location.origin } }), 500) + setTimeout(() => signOut(), 500) }, onError() { toast.error(`Error deleting account`) diff --git a/libs/client/features/src/user-billing/SubscriberGuard.tsx b/libs/client/features/src/user-billing/SubscriberGuard.tsx index bb570779..85abc75d 100644 --- a/libs/client/features/src/user-billing/SubscriberGuard.tsx +++ b/libs/client/features/src/user-billing/SubscriberGuard.tsx @@ -1,4 +1,4 @@ -import { useAuth0 } from '@auth0/auth0-react' +import { signOut } from 'next-auth/react' import { MainContentOverlay, useUserApi } from '@maybe-finance/client/shared' import { LoadingSpinner } from '@maybe-finance/design-system' import type { SharedType } from '@maybe-finance/shared' @@ -22,7 +22,6 @@ function shouldRedirect(path: string, data?: SharedType.UserSubscription) { export function SubscriberGuard({ children }: PropsWithChildren) { const router = useRouter() - const { logout } = useAuth0() const { useSubscription } = useUserApi() const subscription = useSubscription() @@ -31,7 +30,7 @@ export function SubscriberGuard({ children }: PropsWithChildren) { logout({ logoutParams: { returnTo: window.location.origin } })} + onAction={() => signOut()} >

Contact us if this issue persists.

diff --git a/libs/client/features/src/user-details/UserDetails.tsx b/libs/client/features/src/user-details/UserDetails.tsx index 1fea920c..2a0c566a 100644 --- a/libs/client/features/src/user-details/UserDetails.tsx +++ b/libs/client/features/src/user-details/UserDetails.tsx @@ -1,6 +1,6 @@ import { useState } from 'react' import { Controller, useForm } from 'react-hook-form' -import { useAuth0 } from '@auth0/auth0-react' +import { signOut } from 'next-auth/react' import classNames from 'classnames' import { AiOutlineLoading3Quarters as LoadingIcon } from 'react-icons/ai' import { @@ -30,7 +30,6 @@ import { DeleteUserButton } from './DeleteUserButton' import { DateTime } from 'luxon' export function UserDetails() { - const { logout } = useAuth0() const { useProfile, useAuth0Profile, useUpdateProfile } = useUserApi() const auth0ProfileQuery = useAuth0Profile() @@ -101,9 +100,7 @@ export function UserDetails() { Deleting your account is a permanent action. If you delete your account, you will no longer be able to sign and all data will be deleted.

- logout({ logoutParams: { returnTo: window.location.origin } })} - /> + signOut()} /> )