@oxyhq/services 5.5.2 → 5.5.4
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/lib/commonjs/ui/hooks/useAuthFetch.js +14 -7
- package/lib/commonjs/ui/hooks/useAuthFetch.js.map +1 -1
- package/lib/module/ui/hooks/useAuthFetch.js +14 -7
- package/lib/module/ui/hooks/useAuthFetch.js.map +1 -1
- package/lib/typescript/ui/hooks/useAuthFetch.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ui/hooks/useAuthFetch.ts +14 -7
|
@@ -37,16 +37,16 @@ function useAuthFetch() {
|
|
|
37
37
|
// Main fetch function with automatic auth headers
|
|
38
38
|
const authFetch = (0, _react.useCallback)(async (input, init) => {
|
|
39
39
|
const url = resolveURL(input, oxyServices.getBaseURL());
|
|
40
|
-
const options = await addAuthHeaders(init, oxyServices, activeSessionId || undefined);
|
|
40
|
+
const options = await addAuthHeaders(init, oxyServices, activeSessionId || undefined, isAuthenticated);
|
|
41
41
|
try {
|
|
42
42
|
let response = await fetch(url, options);
|
|
43
43
|
|
|
44
44
|
// Handle token expiry and automatic refresh
|
|
45
|
-
if (response.status === 401 &&
|
|
45
|
+
if (response.status === 401 && isAuthenticated) {
|
|
46
46
|
// Try to refresh token and retry
|
|
47
47
|
try {
|
|
48
48
|
await oxyServices.refreshTokens();
|
|
49
|
-
const retryOptions = await addAuthHeaders(init, oxyServices, activeSessionId || undefined);
|
|
49
|
+
const retryOptions = await addAuthHeaders(init, oxyServices, activeSessionId || undefined, isAuthenticated);
|
|
50
50
|
response = await fetch(url, retryOptions);
|
|
51
51
|
} catch (refreshError) {
|
|
52
52
|
// Refresh failed, user needs to login again
|
|
@@ -59,7 +59,7 @@ function useAuthFetch() {
|
|
|
59
59
|
console.error('AuthFetch error:', error);
|
|
60
60
|
throw error;
|
|
61
61
|
}
|
|
62
|
-
}, [oxyServices, activeSessionId]);
|
|
62
|
+
}, [oxyServices, activeSessionId, isAuthenticated]);
|
|
63
63
|
|
|
64
64
|
// JSON convenience methods
|
|
65
65
|
const get = (0, _react.useCallback)(async (endpoint, options) => {
|
|
@@ -135,14 +135,18 @@ function resolveURL(input, baseURL) {
|
|
|
135
135
|
// Otherwise, append to base URL with /
|
|
136
136
|
return `${baseURL}/${url}`;
|
|
137
137
|
}
|
|
138
|
-
async function addAuthHeaders(init, oxyServices, activeSessionId) {
|
|
138
|
+
async function addAuthHeaders(init, oxyServices, activeSessionId, isAuthenticated) {
|
|
139
139
|
const headers = new Headers(init?.headers);
|
|
140
140
|
|
|
141
|
-
//
|
|
142
|
-
|
|
141
|
+
// Debug logging
|
|
142
|
+
console.log('[Auth API Debug] isAuthenticated:', isAuthenticated, 'activeSessionId:', activeSessionId, 'oxyServices:', !!oxyServices);
|
|
143
|
+
|
|
144
|
+
// Add auth header if user is authenticated (use context state instead of getCurrentUserId)
|
|
145
|
+
if (isAuthenticated && oxyServices && !headers.has('Authorization')) {
|
|
143
146
|
try {
|
|
144
147
|
// First try to get regular JWT access token
|
|
145
148
|
let accessToken = oxyServices.getAccessToken?.();
|
|
149
|
+
console.log('[Auth API Debug] JWT accessToken from getAccessToken():', !!accessToken);
|
|
146
150
|
|
|
147
151
|
// If no JWT token but we have a secure session, try to get token from session
|
|
148
152
|
if (!accessToken && activeSessionId) {
|
|
@@ -157,12 +161,15 @@ async function addAuthHeaders(init, oxyServices, activeSessionId) {
|
|
|
157
161
|
}
|
|
158
162
|
if (accessToken) {
|
|
159
163
|
headers.set('Authorization', `Bearer ${accessToken}`);
|
|
164
|
+
console.log('[Auth API] Added Authorization header successfully');
|
|
160
165
|
} else {
|
|
161
166
|
console.warn('[Auth API] No authentication token available - JWT token:', !!oxyServices.getAccessToken?.(), 'activeSessionId:', activeSessionId);
|
|
162
167
|
}
|
|
163
168
|
} catch (error) {
|
|
164
169
|
console.error('[Auth API] Error getting access token:', error);
|
|
165
170
|
}
|
|
171
|
+
} else {
|
|
172
|
+
console.warn('[Auth API] Cannot authenticate - isAuthenticated:', isAuthenticated, 'oxyServices:', !!oxyServices, 'hasAuthHeader:', headers.has('Authorization'));
|
|
166
173
|
}
|
|
167
174
|
const body = init?.body;
|
|
168
175
|
const processedBody = body && typeof body === 'object' && !(body instanceof FormData) && !(body instanceof URLSearchParams) ? JSON.stringify(body) : body;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_OxyContext","useAuthFetch","oxyServices","isAuthenticated","user","login","logout","signUp","activeSessionId","useOxy","authFetch","useCallback","input","init","url","resolveURL","getBaseURL","options","addAuthHeaders","undefined","response","fetch","status","
|
|
1
|
+
{"version":3,"names":["_react","require","_OxyContext","useAuthFetch","oxyServices","isAuthenticated","user","login","logout","signUp","activeSessionId","useOxy","authFetch","useCallback","input","init","url","resolveURL","getBaseURL","options","addAuthHeaders","undefined","response","fetch","status","refreshTokens","retryOptions","refreshError","console","warn","Error","error","get","endpoint","method","handleJsonResponse","post","data","headers","body","JSON","stringify","put","del","fetchWithMethods","delete","baseURL","toString","startsWith","Headers","log","has","accessToken","getAccessToken","tokenData","getTokenBySession","set","processedBody","FormData","URLSearchParams","ok","errorMessage","statusText","errorData","json","message","_default","exports","default"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAuthFetch.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -32,16 +32,16 @@ export function useAuthFetch() {
|
|
|
32
32
|
// Main fetch function with automatic auth headers
|
|
33
33
|
const authFetch = useCallback(async (input, init) => {
|
|
34
34
|
const url = resolveURL(input, oxyServices.getBaseURL());
|
|
35
|
-
const options = await addAuthHeaders(init, oxyServices, activeSessionId || undefined);
|
|
35
|
+
const options = await addAuthHeaders(init, oxyServices, activeSessionId || undefined, isAuthenticated);
|
|
36
36
|
try {
|
|
37
37
|
let response = await fetch(url, options);
|
|
38
38
|
|
|
39
39
|
// Handle token expiry and automatic refresh
|
|
40
|
-
if (response.status === 401 &&
|
|
40
|
+
if (response.status === 401 && isAuthenticated) {
|
|
41
41
|
// Try to refresh token and retry
|
|
42
42
|
try {
|
|
43
43
|
await oxyServices.refreshTokens();
|
|
44
|
-
const retryOptions = await addAuthHeaders(init, oxyServices, activeSessionId || undefined);
|
|
44
|
+
const retryOptions = await addAuthHeaders(init, oxyServices, activeSessionId || undefined, isAuthenticated);
|
|
45
45
|
response = await fetch(url, retryOptions);
|
|
46
46
|
} catch (refreshError) {
|
|
47
47
|
// Refresh failed, user needs to login again
|
|
@@ -54,7 +54,7 @@ export function useAuthFetch() {
|
|
|
54
54
|
console.error('AuthFetch error:', error);
|
|
55
55
|
throw error;
|
|
56
56
|
}
|
|
57
|
-
}, [oxyServices, activeSessionId]);
|
|
57
|
+
}, [oxyServices, activeSessionId, isAuthenticated]);
|
|
58
58
|
|
|
59
59
|
// JSON convenience methods
|
|
60
60
|
const get = useCallback(async (endpoint, options) => {
|
|
@@ -130,14 +130,18 @@ function resolveURL(input, baseURL) {
|
|
|
130
130
|
// Otherwise, append to base URL with /
|
|
131
131
|
return `${baseURL}/${url}`;
|
|
132
132
|
}
|
|
133
|
-
async function addAuthHeaders(init, oxyServices, activeSessionId) {
|
|
133
|
+
async function addAuthHeaders(init, oxyServices, activeSessionId, isAuthenticated) {
|
|
134
134
|
const headers = new Headers(init?.headers);
|
|
135
135
|
|
|
136
|
-
//
|
|
137
|
-
|
|
136
|
+
// Debug logging
|
|
137
|
+
console.log('[Auth API Debug] isAuthenticated:', isAuthenticated, 'activeSessionId:', activeSessionId, 'oxyServices:', !!oxyServices);
|
|
138
|
+
|
|
139
|
+
// Add auth header if user is authenticated (use context state instead of getCurrentUserId)
|
|
140
|
+
if (isAuthenticated && oxyServices && !headers.has('Authorization')) {
|
|
138
141
|
try {
|
|
139
142
|
// First try to get regular JWT access token
|
|
140
143
|
let accessToken = oxyServices.getAccessToken?.();
|
|
144
|
+
console.log('[Auth API Debug] JWT accessToken from getAccessToken():', !!accessToken);
|
|
141
145
|
|
|
142
146
|
// If no JWT token but we have a secure session, try to get token from session
|
|
143
147
|
if (!accessToken && activeSessionId) {
|
|
@@ -152,12 +156,15 @@ async function addAuthHeaders(init, oxyServices, activeSessionId) {
|
|
|
152
156
|
}
|
|
153
157
|
if (accessToken) {
|
|
154
158
|
headers.set('Authorization', `Bearer ${accessToken}`);
|
|
159
|
+
console.log('[Auth API] Added Authorization header successfully');
|
|
155
160
|
} else {
|
|
156
161
|
console.warn('[Auth API] No authentication token available - JWT token:', !!oxyServices.getAccessToken?.(), 'activeSessionId:', activeSessionId);
|
|
157
162
|
}
|
|
158
163
|
} catch (error) {
|
|
159
164
|
console.error('[Auth API] Error getting access token:', error);
|
|
160
165
|
}
|
|
166
|
+
} else {
|
|
167
|
+
console.warn('[Auth API] Cannot authenticate - isAuthenticated:', isAuthenticated, 'oxyServices:', !!oxyServices, 'hasAuthHeader:', headers.has('Authorization'));
|
|
161
168
|
}
|
|
162
169
|
const body = init?.body;
|
|
163
170
|
const processedBody = body && typeof body === 'object' && !(body instanceof FormData) && !(body instanceof URLSearchParams) ? JSON.stringify(body) : body;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useOxy","useAuthFetch","oxyServices","isAuthenticated","user","login","logout","signUp","activeSessionId","authFetch","input","init","url","resolveURL","getBaseURL","options","addAuthHeaders","undefined","response","fetch","status","
|
|
1
|
+
{"version":3,"names":["useCallback","useOxy","useAuthFetch","oxyServices","isAuthenticated","user","login","logout","signUp","activeSessionId","authFetch","input","init","url","resolveURL","getBaseURL","options","addAuthHeaders","undefined","response","fetch","status","refreshTokens","retryOptions","refreshError","console","warn","Error","error","get","endpoint","method","handleJsonResponse","post","data","headers","body","JSON","stringify","put","del","fetchWithMethods","delete","baseURL","toString","startsWith","Headers","log","has","accessToken","getAccessToken","tokenData","getTokenBySession","set","processedBody","FormData","URLSearchParams","ok","errorMessage","statusText","errorData","json","message"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAuthFetch.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthFetch.d.ts","sourceRoot":"","sources":["../../../../src/ui/hooks/useAuthFetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;IACjE,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAE3B,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAGvE,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACpE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACjF,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChF,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAGvE,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC7E;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,YAAY,CAkF3C;
|
|
1
|
+
{"version":3,"file":"useAuthFetch.d.ts","sourceRoot":"","sources":["../../../../src/ui/hooks/useAuthFetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;IACjE,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAE3B,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAGvE,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACpE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACjF,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChF,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAGvE,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC7E;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,YAAY,CAkF3C;AAkGD,eAAe,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/services",
|
|
3
|
-
"version": "5.5.
|
|
3
|
+
"version": "5.5.4",
|
|
4
4
|
"description": "Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀",
|
|
5
5
|
"main": "lib/commonjs/node/index.js",
|
|
6
6
|
"module": "lib/module/node/index.js",
|
|
@@ -45,17 +45,17 @@ export function useAuthFetch(): AuthFetchAPI {
|
|
|
45
45
|
// Main fetch function with automatic auth headers
|
|
46
46
|
const authFetch = useCallback(async (input: RequestInfo | URL, init?: AuthFetchOptions): Promise<Response> => {
|
|
47
47
|
const url = resolveURL(input, oxyServices.getBaseURL());
|
|
48
|
-
const options = await addAuthHeaders(init, oxyServices, activeSessionId || undefined);
|
|
48
|
+
const options = await addAuthHeaders(init, oxyServices, activeSessionId || undefined, isAuthenticated);
|
|
49
49
|
|
|
50
50
|
try {
|
|
51
51
|
let response = await fetch(url, options);
|
|
52
52
|
|
|
53
53
|
// Handle token expiry and automatic refresh
|
|
54
|
-
if (response.status === 401 &&
|
|
54
|
+
if (response.status === 401 && isAuthenticated) {
|
|
55
55
|
// Try to refresh token and retry
|
|
56
56
|
try {
|
|
57
57
|
await oxyServices.refreshTokens();
|
|
58
|
-
const retryOptions = await addAuthHeaders(init, oxyServices, activeSessionId || undefined);
|
|
58
|
+
const retryOptions = await addAuthHeaders(init, oxyServices, activeSessionId || undefined, isAuthenticated);
|
|
59
59
|
response = await fetch(url, retryOptions);
|
|
60
60
|
} catch (refreshError) {
|
|
61
61
|
// Refresh failed, user needs to login again
|
|
@@ -69,7 +69,7 @@ export function useAuthFetch(): AuthFetchAPI {
|
|
|
69
69
|
console.error('AuthFetch error:', error);
|
|
70
70
|
throw error;
|
|
71
71
|
}
|
|
72
|
-
}, [oxyServices, activeSessionId]);
|
|
72
|
+
}, [oxyServices, activeSessionId, isAuthenticated]);
|
|
73
73
|
|
|
74
74
|
// JSON convenience methods
|
|
75
75
|
const get = useCallback(async (endpoint: string, options?: AuthFetchOptions) => {
|
|
@@ -144,14 +144,18 @@ function resolveURL(input: RequestInfo | URL, baseURL: string): string {
|
|
|
144
144
|
return `${baseURL}/${url}`;
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
async function addAuthHeaders(init?: AuthFetchOptions, oxyServices?: any, activeSessionId?: string): Promise<RequestInit> {
|
|
147
|
+
async function addAuthHeaders(init?: AuthFetchOptions, oxyServices?: any, activeSessionId?: string, isAuthenticated?: boolean): Promise<RequestInit> {
|
|
148
148
|
const headers = new Headers(init?.headers);
|
|
149
149
|
|
|
150
|
-
//
|
|
151
|
-
|
|
150
|
+
// Debug logging
|
|
151
|
+
console.log('[Auth API Debug] isAuthenticated:', isAuthenticated, 'activeSessionId:', activeSessionId, 'oxyServices:', !!oxyServices);
|
|
152
|
+
|
|
153
|
+
// Add auth header if user is authenticated (use context state instead of getCurrentUserId)
|
|
154
|
+
if (isAuthenticated && oxyServices && !headers.has('Authorization')) {
|
|
152
155
|
try {
|
|
153
156
|
// First try to get regular JWT access token
|
|
154
157
|
let accessToken = oxyServices.getAccessToken?.();
|
|
158
|
+
console.log('[Auth API Debug] JWT accessToken from getAccessToken():', !!accessToken);
|
|
155
159
|
|
|
156
160
|
// If no JWT token but we have a secure session, try to get token from session
|
|
157
161
|
if (!accessToken && activeSessionId) {
|
|
@@ -167,12 +171,15 @@ async function addAuthHeaders(init?: AuthFetchOptions, oxyServices?: any, active
|
|
|
167
171
|
|
|
168
172
|
if (accessToken) {
|
|
169
173
|
headers.set('Authorization', `Bearer ${accessToken}`);
|
|
174
|
+
console.log('[Auth API] Added Authorization header successfully');
|
|
170
175
|
} else {
|
|
171
176
|
console.warn('[Auth API] No authentication token available - JWT token:', !!oxyServices.getAccessToken?.(), 'activeSessionId:', activeSessionId);
|
|
172
177
|
}
|
|
173
178
|
} catch (error) {
|
|
174
179
|
console.error('[Auth API] Error getting access token:', error);
|
|
175
180
|
}
|
|
181
|
+
} else {
|
|
182
|
+
console.warn('[Auth API] Cannot authenticate - isAuthenticated:', isAuthenticated, 'oxyServices:', !!oxyServices, 'hasAuthHeader:', headers.has('Authorization'));
|
|
176
183
|
}
|
|
177
184
|
|
|
178
185
|
const body = init?.body;
|