@oxyhq/services 5.5.2 → 5.5.3
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 +9 -7
- package/lib/commonjs/ui/hooks/useAuthFetch.js.map +1 -1
- package/lib/module/ui/hooks/useAuthFetch.js +9 -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 +9 -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,11 +135,11 @@ 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
|
-
// Add auth header if user is authenticated
|
|
142
|
-
if (oxyServices
|
|
141
|
+
// Add auth header if user is authenticated (use context state instead of getCurrentUserId)
|
|
142
|
+
if (isAuthenticated && oxyServices && !headers.has('Authorization')) {
|
|
143
143
|
try {
|
|
144
144
|
// First try to get regular JWT access token
|
|
145
145
|
let accessToken = oxyServices.getAccessToken?.();
|
|
@@ -163,6 +163,8 @@ async function addAuthHeaders(init, oxyServices, activeSessionId) {
|
|
|
163
163
|
} catch (error) {
|
|
164
164
|
console.error('[Auth API] Error getting access token:', error);
|
|
165
165
|
}
|
|
166
|
+
} else if (!isAuthenticated) {
|
|
167
|
+
console.warn('[Auth API] User not authenticated - isAuthenticated:', isAuthenticated);
|
|
166
168
|
}
|
|
167
169
|
const body = init?.body;
|
|
168
170
|
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","has","accessToken","getAccessToken","log","tokenData","getTokenBySession","set","processedBody","FormData","URLSearchParams","ok","errorMessage","statusText","errorData","json","message","_default","exports","default"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAuthFetch.ts"],"mappings":";;;;;;;AAYA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA;AACA;AACA;AACA;AACO,SAASE,YAAYA,CAAA,EAAiB;EAC3C,MAAM;IAAEC,WAAW;IAAEC,eAAe;IAAEC,IAAI;IAAEC,KAAK;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAgB,CAAC,GAAG,IAAAC,kBAAM,EAAC,CAAC;;EAE/F;EACA,MAAMC,SAAS,GAAG,IAAAC,kBAAW,EAAC,OAAOC,KAAwB,EAAEC,IAAuB,KAAwB;IAC5G,MAAMC,GAAG,GAAGC,UAAU,CAACH,KAAK,EAAEV,WAAW,CAACc,UAAU,CAAC,CAAC,CAAC;IACvD,MAAMC,OAAO,GAAG,MAAMC,cAAc,CAACL,IAAI,EAAEX,WAAW,EAAEM,eAAe,IAAIW,SAAS,EAAEhB,eAAe,CAAC;IAEtG,IAAI;MACF,IAAIiB,QAAQ,GAAG,MAAMC,KAAK,CAACP,GAAG,EAAEG,OAAO,CAAC;;MAExC;MACA,IAAIG,QAAQ,CAACE,MAAM,KAAK,GAAG,IAAInB,eAAe,EAAE;QAC9C;QACA,IAAI;UACF,MAAMD,WAAW,CAACqB,aAAa,CAAC,CAAC;UACjC,MAAMC,YAAY,GAAG,MAAMN,cAAc,CAACL,IAAI,EAAEX,WAAW,EAAEM,eAAe,IAAIW,SAAS,EAAEhB,eAAe,CAAC;UAC3GiB,QAAQ,GAAG,MAAMC,KAAK,CAACP,GAAG,EAAEU,YAAY,CAAC;QAC3C,CAAC,CAAC,OAAOC,YAAY,EAAE;UACrB;UACAC,OAAO,CAACC,IAAI,CAAC,qDAAqD,CAAC;UACnE,MAAM,IAAIC,KAAK,CAAC,6CAA6C,CAAC;QAChE;MACF;MAEA,OAAOR,QAAQ;IACjB,CAAC,CAAC,OAAOS,KAAK,EAAE;MACdH,OAAO,CAACG,KAAK,CAAC,kBAAkB,EAAEA,KAAK,CAAC;MACxC,MAAMA,KAAK;IACb;EACF,CAAC,EAAE,CAAC3B,WAAW,EAAEM,eAAe,EAAEL,eAAe,CAAC,CAAC;;EAEnD;EACA,MAAM2B,GAAG,GAAG,IAAAnB,kBAAW,EAAC,OAAOoB,QAAgB,EAAEd,OAA0B,KAAK;IAC9E,MAAMG,QAAQ,GAAG,MAAMV,SAAS,CAACqB,QAAQ,EAAE;MAAE,GAAGd,OAAO;MAAEe,MAAM,EAAE;IAAM,CAAC,CAAC;IACzE,OAAOC,kBAAkB,CAACb,QAAQ,CAAC;EACrC,CAAC,EAAE,CAACV,SAAS,CAAC,CAAC;EAEf,MAAMwB,IAAI,GAAG,IAAAvB,kBAAW,EAAC,OAAOoB,QAAgB,EAAEI,IAAU,EAAElB,OAA0B,KAAK;IAC3F,MAAMG,QAAQ,GAAG,MAAMV,SAAS,CAACqB,QAAQ,EAAE;MACzC,GAAGd,OAAO;MACVe,MAAM,EAAE,MAAM;MACdI,OAAO,EAAE;QACP,cAAc,EAAE,kBAAkB;QAClC,GAAGnB,OAAO,EAAEmB;MACd,CAAC;MACDC,IAAI,EAAEF,IAAI,GAAGG,IAAI,CAACC,SAAS,CAACJ,IAAI,CAAC,GAAGhB;IACtC,CAAC,CAAC;IACF,OAAOc,kBAAkB,CAACb,QAAQ,CAAC;EACrC,CAAC,EAAE,CAACV,SAAS,CAAC,CAAC;EAEf,MAAM8B,GAAG,GAAG,IAAA7B,kBAAW,EAAC,OAAOoB,QAAgB,EAAEI,IAAU,EAAElB,OAA0B,KAAK;IAC1F,MAAMG,QAAQ,GAAG,MAAMV,SAAS,CAACqB,QAAQ,EAAE;MACzC,GAAGd,OAAO;MACVe,MAAM,EAAE,KAAK;MACbI,OAAO,EAAE;QACP,cAAc,EAAE,kBAAkB;QAClC,GAAGnB,OAAO,EAAEmB;MACd,CAAC;MACDC,IAAI,EAAEF,IAAI,GAAGG,IAAI,CAACC,SAAS,CAACJ,IAAI,CAAC,GAAGhB;IACtC,CAAC,CAAC;IACF,OAAOc,kBAAkB,CAACb,QAAQ,CAAC;EACrC,CAAC,EAAE,CAACV,SAAS,CAAC,CAAC;EAEf,MAAM+B,GAAG,GAAG,IAAA9B,kBAAW,EAAC,OAAOoB,QAAgB,EAAEd,OAA0B,KAAK;IAC9E,MAAMG,QAAQ,GAAG,MAAMV,SAAS,CAACqB,QAAQ,EAAE;MAAE,GAAGd,OAAO;MAAEe,MAAM,EAAE;IAAS,CAAC,CAAC;IAC5E,OAAOC,kBAAkB,CAACb,QAAQ,CAAC;EACrC,CAAC,EAAE,CAACV,SAAS,CAAC,CAAC;;EAEf;EACA,MAAMgC,gBAAgB,GAAGhC,SAAyB;EAClDgC,gBAAgB,CAACZ,GAAG,GAAGA,GAAG;EAC1BY,gBAAgB,CAACR,IAAI,GAAGA,IAAI;EAC5BQ,gBAAgB,CAACF,GAAG,GAAGA,GAAG;EAC1BE,gBAAgB,CAACC,MAAM,GAAGF,GAAG;EAC7BC,gBAAgB,CAACvC,eAAe,GAAGA,eAAe;EAClDuC,gBAAgB,CAACtC,IAAI,GAAGA,IAAI;EAC5BsC,gBAAgB,CAACrC,KAAK,GAAGA,KAAK;EAC9BqC,gBAAgB,CAACpC,MAAM,GAAGA,MAAM;EAChCoC,gBAAgB,CAACnC,MAAM,GAAGA,MAAM;EAEhC,OAAOmC,gBAAgB;AACzB;;AAEA;AACA;AACA;;AAEA,SAAS3B,UAAUA,CAACH,KAAwB,EAAEgC,OAAe,EAAU;EACrE,MAAM9B,GAAG,GAAGF,KAAK,CAACiC,QAAQ,CAAC,CAAC;;EAE5B;EACA,IAAI/B,GAAG,CAACgC,UAAU,CAAC,SAAS,CAAC,IAAIhC,GAAG,CAACgC,UAAU,CAAC,UAAU,CAAC,EAAE;IAC3D,OAAOhC,GAAG;EACZ;;EAEA;EACA,IAAIA,GAAG,CAACgC,UAAU,CAAC,GAAG,CAAC,EAAE;IACvB,OAAO,GAAGF,OAAO,GAAG9B,GAAG,EAAE;EAC3B;;EAEA;EACA,OAAO,GAAG8B,OAAO,IAAI9B,GAAG,EAAE;AAC5B;AAEA,eAAeI,cAAcA,CAACL,IAAuB,EAAEX,WAAiB,EAAEM,eAAwB,EAAEL,eAAyB,EAAwB;EACnJ,MAAMiC,OAAO,GAAG,IAAIW,OAAO,CAAClC,IAAI,EAAEuB,OAAO,CAAC;;EAE1C;EACA,IAAIjC,eAAe,IAAID,WAAW,IAAI,CAACkC,OAAO,CAACY,GAAG,CAAC,eAAe,CAAC,EAAE;IACnE,IAAI;MACF;MACA,IAAIC,WAAW,GAAG/C,WAAW,CAACgD,cAAc,GAAG,CAAC;;MAEhD;MACA,IAAI,CAACD,WAAW,IAAIzC,eAAe,EAAE;QACnCkB,OAAO,CAACyB,GAAG,CAAC,mEAAmE,EAAE3C,eAAe,CAAC;QACjG,IAAI;UACF,MAAM4C,SAAS,GAAG,MAAMlD,WAAW,CAACmD,iBAAiB,CAAC7C,eAAe,CAAC;UACtEyC,WAAW,GAAGG,SAAS,CAACH,WAAW;UACnCvB,OAAO,CAACyB,GAAG,CAAC,gDAAgD,CAAC;QAC/D,CAAC,CAAC,OAAOtB,KAAK,EAAE;UACdH,OAAO,CAACC,IAAI,CAAC,8CAA8C,EAAEE,KAAK,CAAC;QACrE;MACF;MAEA,IAAIoB,WAAW,EAAE;QACfb,OAAO,CAACkB,GAAG,CAAC,eAAe,EAAE,UAAUL,WAAW,EAAE,CAAC;MACvD,CAAC,MAAM;QACLvB,OAAO,CAACC,IAAI,CAAC,2DAA2D,EAAE,CAAC,CAACzB,WAAW,CAACgD,cAAc,GAAG,CAAC,EAAE,kBAAkB,EAAE1C,eAAe,CAAC;MAClJ;IACF,CAAC,CAAC,OAAOqB,KAAK,EAAE;MACdH,OAAO,CAACG,KAAK,CAAC,wCAAwC,EAAEA,KAAK,CAAC;IAChE;EACF,CAAC,MAAM,IAAI,CAAC1B,eAAe,EAAE;IAC3BuB,OAAO,CAACC,IAAI,CAAC,sDAAsD,EAAExB,eAAe,CAAC;EACvF;EAEA,MAAMkC,IAAI,GAAGxB,IAAI,EAAEwB,IAAI;EACvB,MAAMkB,aAAa,GAAGlB,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,EAAEA,IAAI,YAAYmB,QAAQ,CAAC,IAAI,EAAEnB,IAAI,YAAYoB,eAAe,CAAC,GACvHnB,IAAI,CAACC,SAAS,CAACF,IAAI,CAAC,GACpBA,IAAI;EAER,OAAO;IACL,GAAGxB,IAAI;IACPuB,OAAO;IACPC,IAAI,EAAEkB;EACR,CAAC;AACH;AAEA,eAAetB,kBAAkBA,CAACb,QAAkB,EAAgB;EAClE,IAAI,CAACA,QAAQ,CAACsC,EAAE,EAAE;IAChB,IAAIC,YAAY,GAAG,QAAQvC,QAAQ,CAACE,MAAM,KAAKF,QAAQ,CAACwC,UAAU,EAAE;IAEpE,IAAI;MACF,MAAMC,SAAS,GAAG,MAAMzC,QAAQ,CAAC0C,IAAI,CAAC,CAAC;MACvCH,YAAY,GAAGE,SAAS,CAACE,OAAO,IAAIF,SAAS,CAAChC,KAAK,IAAI8B,YAAY;IACrE,CAAC,CAAC,MAAM;MACN;IAAA;IAGF,MAAM9B,KAAK,GAAG,IAAID,KAAK,CAAC+B,YAAY,CAAQ;IAC5C9B,KAAK,CAACP,MAAM,GAAGF,QAAQ,CAACE,MAAM;IAC9BO,KAAK,CAACT,QAAQ,GAAGA,QAAQ;IACzB,MAAMS,KAAK;EACb;EAEA,IAAI;IACF,OAAO,MAAMT,QAAQ,CAAC0C,IAAI,CAAC,CAAC;EAC9B,CAAC,CAAC,MAAM;IACN;IACA,OAAO1C,QAAQ;EACjB;AACF;AAAC,IAAA4C,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcjE,YAAY","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,11 +130,11 @@ 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
|
-
// Add auth header if user is authenticated
|
|
137
|
-
if (oxyServices
|
|
136
|
+
// Add auth header if user is authenticated (use context state instead of getCurrentUserId)
|
|
137
|
+
if (isAuthenticated && oxyServices && !headers.has('Authorization')) {
|
|
138
138
|
try {
|
|
139
139
|
// First try to get regular JWT access token
|
|
140
140
|
let accessToken = oxyServices.getAccessToken?.();
|
|
@@ -158,6 +158,8 @@ async function addAuthHeaders(init, oxyServices, activeSessionId) {
|
|
|
158
158
|
} catch (error) {
|
|
159
159
|
console.error('[Auth API] Error getting access token:', error);
|
|
160
160
|
}
|
|
161
|
+
} else if (!isAuthenticated) {
|
|
162
|
+
console.warn('[Auth API] User not authenticated - isAuthenticated:', isAuthenticated);
|
|
161
163
|
}
|
|
162
164
|
const body = init?.body;
|
|
163
165
|
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","has","accessToken","getAccessToken","log","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;AA6FD,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.3",
|
|
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,11 +144,11 @@ 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
|
-
// Add auth header if user is authenticated
|
|
151
|
-
if (oxyServices
|
|
150
|
+
// Add auth header if user is authenticated (use context state instead of getCurrentUserId)
|
|
151
|
+
if (isAuthenticated && oxyServices && !headers.has('Authorization')) {
|
|
152
152
|
try {
|
|
153
153
|
// First try to get regular JWT access token
|
|
154
154
|
let accessToken = oxyServices.getAccessToken?.();
|
|
@@ -173,6 +173,8 @@ async function addAuthHeaders(init?: AuthFetchOptions, oxyServices?: any, active
|
|
|
173
173
|
} catch (error) {
|
|
174
174
|
console.error('[Auth API] Error getting access token:', error);
|
|
175
175
|
}
|
|
176
|
+
} else if (!isAuthenticated) {
|
|
177
|
+
console.warn('[Auth API] User not authenticated - isAuthenticated:', isAuthenticated);
|
|
176
178
|
}
|
|
177
179
|
|
|
178
180
|
const body = init?.body;
|