diff --git a/apps/web/app/(auth)/browser/page.tsx b/apps/web/app/(auth)/browser/page.tsx index 99666e7..3a431db 100644 --- a/apps/web/app/(auth)/browser/page.tsx +++ b/apps/web/app/(auth)/browser/page.tsx @@ -22,7 +22,7 @@ export default function Auth() { signIn('telegram', { callbackUrl: '/profile', redirect: false, - telegramId: user?.id, + telegramId: user?.id?.toString(), }); }); } diff --git a/apps/web/app/(auth)/telegram/page.tsx b/apps/web/app/(auth)/telegram/page.tsx index fbfcbd2..bc07766 100644 --- a/apps/web/app/(auth)/telegram/page.tsx +++ b/apps/web/app/(auth)/telegram/page.tsx @@ -29,7 +29,7 @@ function useAuth() { signIn('telegram', { callbackUrl: '/profile', redirect: false, - telegramId: initDataUser.id, + telegramId: initDataUser.id.toString(), }).then(() => redirect('/profile')); } }, [initDataUser?.id, status]); diff --git a/apps/web/config/auth.ts b/apps/web/config/auth.ts index d7e9522..315c629 100644 --- a/apps/web/config/auth.ts +++ b/apps/web/config/auth.ts @@ -4,15 +4,15 @@ import CredentialsProvider from 'next-auth/providers/credentials'; export const authOptions: AuthOptions = { callbacks: { async jwt({ token, user }) { - if (user) { - token.id = user.id; + if (user?.telegramId) { + token.telegramId = user.telegramId; } return token; }, async session({ session, token }) { - if (token?.id && session?.user) { - session.user.telegramId = token.id as number; + if (token?.telegramId && session?.user) { + session.user.telegramId = token.telegramId as number; } return session; @@ -27,7 +27,12 @@ export const authOptions: AuthOptions = { throw new Error('Invalid Telegram ID'); } - return { id: telegramId }; + const parsedTelegramId = Number.parseInt(telegramId, 10); + if (Number.isNaN(parsedTelegramId)) { + throw new TypeError('Invalid Telegram ID format'); + } + + return { id: parsedTelegramId.toString(), telegramId: parsedTelegramId }; }, credentials: { telegramId: { label: 'Telegram ID', type: 'text' }, diff --git a/apps/web/types/next-auth.d.ts b/apps/web/types/next-auth.d.ts index 4dcef7c..75cc8b0 100644 --- a/apps/web/types/next-auth.d.ts +++ b/apps/web/types/next-auth.d.ts @@ -12,3 +12,9 @@ declare module 'next-auth' { telegramId?: null | number; } } + +declare module 'next-auth/jwt' { + interface JWT { + telegramId?: number; + } +}