Skip to content

Commit

Permalink
fix: 🐛 fixed issue with sign up api
Browse files Browse the repository at this point in the history
  • Loading branch information
WasiqB committed Jan 2, 2025
1 parent b6d08e5 commit fd8cc6b
Show file tree
Hide file tree
Showing 5 changed files with 92 additions and 22 deletions.
29 changes: 29 additions & 0 deletions apps/web/app/(auth)/auth/callback/route.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { createClient } from '@ultra-reporter/supabase/server';
import { NextResponse } from 'next/server';

export async function GET(request: Request) {
const { searchParams, origin } = new URL(request.url);
const code = searchParams.get('code');
// if "next" is in param, use it as the redirect URL
const next = searchParams.get('next') ?? '/';

if (code) {
const supabase = await createClient();
const { error } = await supabase.auth.exchangeCodeForSession(code);
if (!error) {
const forwardedHost = request.headers.get('x-forwarded-host'); // original origin before load balancer
const isLocalEnv = process.env.NODE_ENV === 'development';
if (isLocalEnv) {
// we can be sure that there is no load balancer in between, so no need to watch for X-Forwarded-Host
return NextResponse.redirect(`${origin}${next}`);
} else if (forwardedHost) {
return NextResponse.redirect(`https://${forwardedHost}${next}`);
} else {
return NextResponse.redirect(`${origin}${next}`);
}
}
}

// return the user to an error page with instructions
return NextResponse.redirect(`${origin}/auth/auth-code-error`);
}
40 changes: 40 additions & 0 deletions apps/web/app/api/auth/sign-up/route.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { logger } from '@ultra-reporter/logger';
import { createClient } from '@ultra-reporter/supabase/server';
import { NextResponse } from 'next/server';

export async function POST(req: Request) {
const supabase = await createClient();

const origin = req.headers.get('origin');

const { provider } = await req.json();
const { error, data } = await supabase.auth.signInWithOAuth({
provider,
options: {
redirectTo: `${origin}/auth/callback`,
},
});

if (error) {
logger.error('Sign up failed', error);
return new NextResponse('Error while signing up', {
status: 500,
});
}

const {
data: { user },
} = await supabase.auth.getUser();

if (!user) {
logger.error('User not found');
return new NextResponse('Error while signing up', {
status: 500,
});
}

logger.info('Sign up successful', data);
return NextResponse.json(user, {
status: 201,
});
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
"@release-it-plugins/lerna-changelog": "^7.0.0",
"@stylistic/eslint-plugin-js": "^2.12.1",
"@stylistic/eslint-plugin-ts": "^2.12.1",
"@types/node": "^22.10.3",
"@types/node": "^22.10.4",
"@typescript-eslint/eslint-plugin": "^8.19.0",
"@typescript-eslint/parser": "^8.19.0",
"@vercel/style-guide": "^6.0.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/feature-toggle/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@
"react-dom": "^19.0"
},
"dependencies": {
"flagsmith": "^8.0.1"
"flagsmith": "^8.0.2"
}
}
41 changes: 21 additions & 20 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit fd8cc6b

Please sign in to comment.