@insforge/nextjs 0.5.6 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +119 -5
- package/dist/api.d.mts +12 -1
- package/dist/api.d.ts +12 -1
- package/dist/api.js +58 -2
- package/dist/api.js.map +1 -1
- package/dist/api.mjs +56 -1
- package/dist/api.mjs.map +1 -1
- package/dist/index.d.mts +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +45 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +45 -5
- package/dist/index.mjs.map +1 -1
- package/dist/middleware.d.mts +7 -1
- package/dist/middleware.d.ts +7 -1
- package/dist/middleware.js +52 -9
- package/dist/middleware.js.map +1 -1
- package/dist/middleware.mjs +48 -8
- package/dist/middleware.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -20,11 +20,15 @@ async function fetchOAuthProviders(baseUrl) {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
function getTokenFromSDK() {
|
|
23
|
+
console.log("[InsforgeProvider] Getting token from SDK");
|
|
23
24
|
if (typeof window === "undefined") return null;
|
|
25
|
+
console.log("[InsforgeProvider] Window:", window);
|
|
24
26
|
try {
|
|
25
27
|
const token = localStorage.getItem("insforge-auth-token");
|
|
28
|
+
console.log("[InsforgeProvider] Token:", token);
|
|
26
29
|
return token;
|
|
27
30
|
} catch (error) {
|
|
31
|
+
console.error("[InsforgeProvider] Error getting token from SDK:", error);
|
|
28
32
|
return null;
|
|
29
33
|
}
|
|
30
34
|
}
|
|
@@ -51,7 +55,9 @@ async function syncTokenToCookie(token) {
|
|
|
51
55
|
function InsforgeProvider({
|
|
52
56
|
children,
|
|
53
57
|
baseUrl,
|
|
54
|
-
|
|
58
|
+
frontendUrl,
|
|
59
|
+
onAuthChange,
|
|
60
|
+
useBuiltInAuth = true
|
|
55
61
|
}) {
|
|
56
62
|
const [user, setUser] = useState(null);
|
|
57
63
|
const [session, setSession] = useState(null);
|
|
@@ -80,33 +86,63 @@ function InsforgeProvider({
|
|
|
80
86
|
setIsLoaded(true);
|
|
81
87
|
return;
|
|
82
88
|
}
|
|
89
|
+
const cachedUserStr = localStorage.getItem("insforge-user-profile");
|
|
90
|
+
if (cachedUserStr) {
|
|
91
|
+
try {
|
|
92
|
+
const cachedData = JSON.parse(cachedUserStr);
|
|
93
|
+
if (cachedData.user) {
|
|
94
|
+
console.log("[InsforgeProvider] Loading user from cache");
|
|
95
|
+
const userData = {
|
|
96
|
+
id: cachedData.user.id,
|
|
97
|
+
email: cachedData.user.email,
|
|
98
|
+
createdAt: cachedData.user.createdAt || (/* @__PURE__ */ new Date()).toISOString(),
|
|
99
|
+
updatedAt: cachedData.user.updatedAt || (/* @__PURE__ */ new Date()).toISOString(),
|
|
100
|
+
...cachedData.profile
|
|
101
|
+
};
|
|
102
|
+
setUser(userData);
|
|
103
|
+
setSession({
|
|
104
|
+
userId: cachedData.user.id,
|
|
105
|
+
token,
|
|
106
|
+
expiresAt: "",
|
|
107
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
108
|
+
});
|
|
109
|
+
if (onAuthChange) {
|
|
110
|
+
onAuthChange(userData);
|
|
111
|
+
}
|
|
112
|
+
setIsLoaded(true);
|
|
113
|
+
}
|
|
114
|
+
} catch (e) {
|
|
115
|
+
console.warn("[InsforgeProvider] Failed to parse cached user data:", e);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
83
118
|
try {
|
|
84
119
|
await syncTokenToCookie(token);
|
|
85
120
|
} catch (error) {
|
|
86
121
|
}
|
|
87
122
|
const userResult = await insforge.auth.getCurrentUser();
|
|
88
123
|
if (userResult.data) {
|
|
124
|
+
console.log("[InsforgeProvider] User data refreshed from API");
|
|
89
125
|
const userData = {
|
|
90
126
|
id: userResult.data.user.id,
|
|
91
127
|
email: userResult.data.user.email,
|
|
92
128
|
createdAt: userResult.data.user.createdAt || (/* @__PURE__ */ new Date()).toISOString(),
|
|
93
129
|
updatedAt: userResult.data.user.updatedAt || (/* @__PURE__ */ new Date()).toISOString(),
|
|
94
130
|
...userResult.data.profile
|
|
95
|
-
// Add profile data if available
|
|
96
131
|
};
|
|
97
132
|
setUser(userData);
|
|
98
133
|
setSession({
|
|
99
134
|
userId: userResult.data.user.id,
|
|
100
135
|
token,
|
|
101
136
|
expiresAt: "",
|
|
102
|
-
// Insforge tokens are long-lived
|
|
103
137
|
createdAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
104
138
|
});
|
|
139
|
+
localStorage.setItem("insforge-user-profile", JSON.stringify(userResult.data));
|
|
105
140
|
if (onAuthChange) {
|
|
106
141
|
onAuthChange(userData);
|
|
107
142
|
}
|
|
108
143
|
} else {
|
|
109
144
|
localStorage.removeItem("insforge-auth-token");
|
|
145
|
+
localStorage.removeItem("insforge-user-profile");
|
|
110
146
|
try {
|
|
111
147
|
await fetch("/api/auth", { method: "DELETE" });
|
|
112
148
|
} catch (error) {
|
|
@@ -118,7 +154,9 @@ function InsforgeProvider({
|
|
|
118
154
|
}
|
|
119
155
|
}
|
|
120
156
|
} catch (error) {
|
|
157
|
+
console.error("[InsforgeProvider] Token validation failed:", error);
|
|
121
158
|
localStorage.removeItem("insforge-auth-token");
|
|
159
|
+
localStorage.removeItem("insforge-user-profile");
|
|
122
160
|
try {
|
|
123
161
|
await fetch("/api/auth", { method: "DELETE" });
|
|
124
162
|
} catch (error2) {
|
|
@@ -209,6 +247,7 @@ function InsforgeProvider({
|
|
|
209
247
|
);
|
|
210
248
|
const signOut = useCallback(async () => {
|
|
211
249
|
await insforge.auth.signOut();
|
|
250
|
+
localStorage.removeItem("insforge-user-profile");
|
|
212
251
|
await fetch("/api/auth", { method: "DELETE" }).catch(() => {
|
|
213
252
|
});
|
|
214
253
|
if (refreshIntervalRef.current) {
|
|
@@ -296,6 +335,7 @@ function InsforgeProvider({
|
|
|
296
335
|
session,
|
|
297
336
|
isLoaded,
|
|
298
337
|
isSignedIn: !!user,
|
|
338
|
+
setUser,
|
|
299
339
|
signIn,
|
|
300
340
|
signUp,
|
|
301
341
|
signOut,
|
|
@@ -330,8 +370,8 @@ function useAuth() {
|
|
|
330
370
|
|
|
331
371
|
// src/hooks/useUser.ts
|
|
332
372
|
function useUser() {
|
|
333
|
-
const { user, isLoaded, updateUser } = useInsforge();
|
|
334
|
-
return { user, isLoaded, updateUser };
|
|
373
|
+
const { user, isLoaded, updateUser, setUser } = useInsforge();
|
|
374
|
+
return { user, isLoaded, updateUser, setUser };
|
|
335
375
|
}
|
|
336
376
|
|
|
337
377
|
// src/hooks/useSession.ts
|