From 9dab5ee26c53a1c551d167b83776629442dea711 Mon Sep 17 00:00:00 2001 From: tmdeveloper007 Date: Mon, 3 Aug 2026 15:41:54 +0000 Subject: [PATCH] fix: correct auth context API paths, action param, captchaToken, and user fetch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Change API base to use empty string fallback so relative /api/auth paths work in browser - Fix signup and login to call /api/auth (was /auth/signup and /auth/login — wrong paths) - Add action parameter ('signup'/'login') required by backend API route - Add captchaToken parameter to signup and login calls - Replace non-existent /auth/me fetch with supabase.auth.getSession() for user session restore --- app/contexts/AuthContext.js | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/app/contexts/AuthContext.js b/app/contexts/AuthContext.js index 4afee4914..6eade3c7b 100755 --- a/app/contexts/AuthContext.js +++ b/app/contexts/AuthContext.js @@ -1,20 +1,23 @@ 'use client'; import { createContext, useContext, useEffect, useState } from 'react'; import axios from 'axios'; +import { supabase } from '@/lib/supabase'; const AuthContext = createContext(); -const API = process.env.NEXT_PUBLIC_API_URL; +const API_BASE = process.env.NEXT_PUBLIC_API_URL || ''; export const AuthProvider = ({ children }) => { const [user, setUser] = useState(null); - const signup = async (email, password, name) => { + const signup = async (email, password, name, captchaToken = '') => { try { - const res = await axios.post(`${API}/auth/signup`, { + const res = await axios.post(`${API_BASE}/api/auth`, { email, password, name, + action: 'signup', + captchaToken, }); if (res.data.success) { @@ -28,11 +31,13 @@ export const AuthProvider = ({ children }) => { } }; - const login = async (email, password) => { + const login = async (email, password, captchaToken = '') => { try { - const res = await axios.post(`${API}/auth/login`, { + const res = await axios.post(`${API_BASE}/api/auth`, { email, password, + action: 'login', + captchaToken, }); if (res.data.success) { @@ -54,16 +59,12 @@ export const AuthProvider = ({ children }) => { useEffect(() => { const fetchUser = async () => { - const token = localStorage.getItem('token'); - if (token) { - try { - const res = await axios.get(`${API}/auth/me`, { - headers: { Authorization: `Bearer ${token}` }, - }); - if (res.data.user) setUser(res.data.user); - } catch { - localStorage.removeItem('token'); - } + const { data } = await supabase.auth.getSession(); + if (data?.session?.user) { + setUser(data.session.user); + localStorage.setItem('token', data.session.access_token); + } else { + localStorage.removeItem('token'); } };