From 2de09a0183875af6434555b4c1d0b8b910047874 Mon Sep 17 00:00:00 2001 From: clarayin129 Date: Sun, 7 Sep 2025 18:10:35 -0700 Subject: [PATCH 1/3] Add signIn on client and callback --- .../_components/AuthForms/LoginForm.tsx | 21 +++++++++++++ auth.ts | 31 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/app/(pages)/(hackers)/_components/AuthForms/LoginForm.tsx b/app/(pages)/(hackers)/_components/AuthForms/LoginForm.tsx index 75b0ee72..c3ebe258 100644 --- a/app/(pages)/(hackers)/_components/AuthForms/LoginForm.tsx +++ b/app/(pages)/(hackers)/_components/AuthForms/LoginForm.tsx @@ -4,6 +4,7 @@ import { useRouter } from 'next/navigation'; import LoginAction from '@actions/auth/login'; import AuthForm from '@components/AuthForm/AuthForm'; +import { signIn } from 'next-auth/react'; export default function LoginForm() { const router = useRouter(); @@ -33,7 +34,12 @@ export default function LoginForm() { }, ]; + const handleGoogleLogin = async () => { + await signIn('google', { callbackUrl: '/' }); + }; + return ( +
+ +
); } diff --git a/auth.ts b/auth.ts index 6839c29b..44c85a85 100644 --- a/auth.ts +++ b/auth.ts @@ -1,4 +1,5 @@ import NextAuth, { DefaultSession } from 'next-auth'; +import GoogleProvider from 'next-auth/providers/google'; import 'next-auth/jwt'; import Credentials from 'next-auth/providers/credentials'; import { compare } from 'bcryptjs'; @@ -79,6 +80,18 @@ export const { auth, handlers, signIn, signOut } = NextAuth({ } }, }), + GoogleProvider({ + clientId: process.env.GOOGLE_CLIENT_ID, + clientSecret: process.env.GOOGLE_CLIENT_SECRET, + authorization: { + params: { + prompt: 'consent', + access_type: 'offline', + response_type: 'code', + scope: 'openid email profile', + }, + }, + }), ], callbacks: { async jwt({ token, user }) { @@ -95,6 +108,24 @@ export const { auth, handlers, signIn, signOut } = NextAuth({ session.user.role = token.role; return session; }, + async signIn({ account, profile }) { + if (!account || !profile?.email) { + console.log('[NextAuth] Missing account or profile', { account, profile }); + return false; + } + if (account?.provider === 'google' && profile?.email) { + const response = await GetManyUsers({ email: profile.email }); + if (!response.ok || response.body.length === 0) { + console.log(`[NextAuth] Google login denied, user not found: ${profile.email}`); + return false; // Deny sign-in if user not in DB + } + + console.log(`[NextAuth] Google login allowed for: ${profile.email}`); + return true; + } + + return true; // allow sign-in + }, }, secret: process.env.AUTH_SECRET, }); From cf246739baff8add190367a7867e47b0a5614a58 Mon Sep 17 00:00:00 2001 From: clarayin129 Date: Sun, 7 Sep 2025 18:21:57 -0700 Subject: [PATCH 2/3] Fix prettier problems --- .../_components/AuthForms/LoginForm.tsx | 28 +++++++++---------- auth.ts | 13 ++++++--- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/app/(pages)/(hackers)/_components/AuthForms/LoginForm.tsx b/app/(pages)/(hackers)/_components/AuthForms/LoginForm.tsx index c3ebe258..c3b676e3 100644 --- a/app/(pages)/(hackers)/_components/AuthForms/LoginForm.tsx +++ b/app/(pages)/(hackers)/_components/AuthForms/LoginForm.tsx @@ -40,20 +40,20 @@ export default function LoginForm() { return (
- -