frontend: refresh local user data from the api after verifying token
Pedro Lucas Porcellis porcellis@eletrotupi.com · 5 months ago
f037eb7f05a6223108652e950d9766058a4e7ff0 Browse filesParents
9671ed4Changed files
1
Additions
+6
Deletions
-2
frontend/context/AuthContext.tsx
1 1
import React, { createContext, useContext, useEffect, useState } from 'react';
2 2
import { apiClient, User } from '@/lib/api';
3 3
4 4
interface AuthProviderProps {
5 5
children: React.ReactNode;
40 40
41 41
export const AuthProvider = ({ children }: AuthProviderProps) => {
42 42
const [user, setUser] = useState<User | null>(null);
43 43
const [isLoading, setIsLoading] = useState(true);
44 44
45 +
console.log("user & auth", isAuthenticated, user)
45 46
const isAuthenticated = !!user;
47 +
console.log("after user & auth", isAuthenticated, user)
46 48
47 49
// Check for existing authentication on app start
48 50
useEffect(() => {
49 51
checkAuthState();
50 52
}, []);
51 53
52 54
const checkAuthState = async () => {
53 55
try {
54 56
const { token } = await apiClient.getStoredAuthData();
57 +
console.log("We have a token?", token);
55 58
56 59
if (token) {
57 60
const verifyResponse = await apiClient.verifyToken();
61 +
console.log("Checking response: ", verifyResponse)
58 62
if (verifyResponse.valid && verifyResponse.userId && verifyResponse.email) {
59 63
// TODO: Fetch the full user profile
60 64
// For now, we'll create a basic user object
61 65
setUser({
62 66
id: verifyResponse.userId,
63 67
email: verifyResponse.email,
64 -
firstName: '',
65 -
lastName: undefined,
68 +
firstName: verifyResponse.user.firstName,
69 +
lastName: verifyResponse.user.lastName,
66 70
});
67 71
}
68 72
}
69 73
} catch (error) {
70 74
console.error('Auth check failed:', error);
139 143
<AuthContext.Provider value={value}>
140 144
{children}
141 145
</AuthContext.Provider>
142 146
);
143 147
}