@sudobility/auth_lib 0.0.33 → 0.0.34
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseAuthNetworkService.d.ts","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIhF,MAAM,WAAW,iCAAiC;IAEhD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/C;
|
|
1
|
+
{"version":3,"file":"FirebaseAuthNetworkService.d.ts","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIhF,MAAM,WAAW,iCAAiC;IAEhD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/C;AAuDD,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D,OAAO,CAAC,cAAc,CAAgD;gBAE1D,OAAO,CAAC,EAAE,iCAAiC;IAUxC,OAAO,CAAC,CAAC,GAAG,OAAO,EAChC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAsG/B"}
|
|
@@ -3,11 +3,25 @@ import { signOut } from 'firebase/auth';
|
|
|
3
3
|
import { getFirebaseAuth } from '../config/firebase-init';
|
|
4
4
|
async function getAuthToken(forceRefresh = false) {
|
|
5
5
|
const auth = getFirebaseAuth();
|
|
6
|
+
console.log('[FirebaseAuthNetworkService] getAuthToken called', {
|
|
7
|
+
forceRefresh,
|
|
8
|
+
hasAuth: !!auth,
|
|
9
|
+
hasCurrentUser: !!auth?.currentUser,
|
|
10
|
+
userEmail: auth?.currentUser?.email,
|
|
11
|
+
});
|
|
6
12
|
const user = auth?.currentUser;
|
|
7
|
-
if (!user)
|
|
13
|
+
if (!user) {
|
|
14
|
+
console.warn('[FirebaseAuthNetworkService] No currentUser - cannot get token');
|
|
8
15
|
return '';
|
|
16
|
+
}
|
|
9
17
|
try {
|
|
10
|
-
|
|
18
|
+
const token = await user.getIdToken(forceRefresh);
|
|
19
|
+
console.log('[FirebaseAuthNetworkService] Got token', {
|
|
20
|
+
forceRefresh,
|
|
21
|
+
tokenLength: token?.length,
|
|
22
|
+
tokenPrefix: `${token?.substring(0, 20)}...`,
|
|
23
|
+
});
|
|
24
|
+
return token;
|
|
11
25
|
}
|
|
12
26
|
catch (err) {
|
|
13
27
|
console.error('[FirebaseAuthNetworkService] Failed to get ID token:', err);
|
|
@@ -32,28 +46,66 @@ export class FirebaseAuthNetworkService extends WebNetworkClient {
|
|
|
32
46
|
this.serviceOptions = options;
|
|
33
47
|
}
|
|
34
48
|
async request(url, options = {}) {
|
|
49
|
+
const urlForLog = url.length > 100 ? `${url.substring(0, 100)}...` : url;
|
|
50
|
+
console.log('[FirebaseAuthNetworkService] request() called', {
|
|
51
|
+
url: urlForLog,
|
|
52
|
+
method: options.method || 'GET',
|
|
53
|
+
hasAuthHeader: !!options.headers?.Authorization,
|
|
54
|
+
});
|
|
35
55
|
try {
|
|
36
|
-
|
|
56
|
+
const response = await super.request(url, options);
|
|
57
|
+
console.log('[FirebaseAuthNetworkService] request() succeeded', {
|
|
58
|
+
url: urlForLog,
|
|
59
|
+
status: response.status,
|
|
60
|
+
ok: response.ok,
|
|
61
|
+
});
|
|
62
|
+
return response;
|
|
37
63
|
}
|
|
38
64
|
catch (error) {
|
|
65
|
+
console.log('[FirebaseAuthNetworkService] request() caught error', {
|
|
66
|
+
url: urlForLog,
|
|
67
|
+
errorType: error?.constructor?.name,
|
|
68
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
69
|
+
hasStatus: error && typeof error === 'object' && 'status' in error,
|
|
70
|
+
status: error && typeof error === 'object' && 'status' in error
|
|
71
|
+
? error.status
|
|
72
|
+
: 'N/A',
|
|
73
|
+
errorKeys: error && typeof error === 'object' ? Object.keys(error) : [],
|
|
74
|
+
});
|
|
39
75
|
if (error && typeof error === 'object' && 'status' in error) {
|
|
40
76
|
const networkError = error;
|
|
41
77
|
if (networkError.status === 401) {
|
|
42
|
-
console.log('[FirebaseAuthNetworkService] 401
|
|
78
|
+
console.log('[FirebaseAuthNetworkService] 401 detected, attempting token refresh...');
|
|
43
79
|
const freshToken = await getAuthToken(true);
|
|
44
80
|
if (freshToken) {
|
|
45
|
-
console.log('[FirebaseAuthNetworkService] Token refreshed, retrying request');
|
|
81
|
+
console.log('[FirebaseAuthNetworkService] Token refreshed successfully, retrying request...');
|
|
46
82
|
const retryHeaders = {
|
|
47
83
|
...options.headers,
|
|
48
84
|
Authorization: `Bearer ${freshToken}`,
|
|
49
85
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
86
|
+
try {
|
|
87
|
+
const retryResponse = await super.request(url, {
|
|
88
|
+
...options,
|
|
89
|
+
headers: retryHeaders,
|
|
90
|
+
});
|
|
91
|
+
console.log('[FirebaseAuthNetworkService] Retry succeeded!', {
|
|
92
|
+
status: retryResponse.status,
|
|
93
|
+
ok: retryResponse.ok,
|
|
94
|
+
});
|
|
95
|
+
return retryResponse;
|
|
96
|
+
}
|
|
97
|
+
catch (retryError) {
|
|
98
|
+
console.error('[FirebaseAuthNetworkService] Retry also failed', {
|
|
99
|
+
errorType: retryError?.constructor?.name,
|
|
100
|
+
errorMessage: retryError instanceof Error
|
|
101
|
+
? retryError.message
|
|
102
|
+
: String(retryError),
|
|
103
|
+
});
|
|
104
|
+
throw retryError;
|
|
105
|
+
}
|
|
54
106
|
}
|
|
55
107
|
else {
|
|
56
|
-
console.error('[FirebaseAuthNetworkService] Token refresh failed - no token returned');
|
|
108
|
+
console.error('[FirebaseAuthNetworkService] Token refresh failed - no token returned (empty string)');
|
|
57
109
|
this.serviceOptions?.onTokenRefreshFailed?.(new Error('Failed to refresh token'));
|
|
58
110
|
}
|
|
59
111
|
}
|
|
@@ -62,6 +114,12 @@ export class FirebaseAuthNetworkService extends WebNetworkClient {
|
|
|
62
114
|
await logoutUser(this.serviceOptions?.onLogout);
|
|
63
115
|
}
|
|
64
116
|
}
|
|
117
|
+
else {
|
|
118
|
+
console.warn('[FirebaseAuthNetworkService] Error does not have status property, cannot handle', {
|
|
119
|
+
errorType: error?.constructor?.name,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
console.log('[FirebaseAuthNetworkService] Re-throwing original error');
|
|
65
123
|
throw error;
|
|
66
124
|
}
|
|
67
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseAuthNetworkService.js","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAa1D,KAAK,UAAU,YAAY,CAAC,YAAY,GAAG,KAAK;IAC9C,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,EAAE,WAAW,CAAC;IAC/B,IAAI,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"FirebaseAuthNetworkService.js","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudobility/auth_lib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.34",
|
|
4
4
|
"description": "Firebase authentication utilities with token refresh handling",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"@react-native-firebase/app": ">=18.0.0",
|
|
39
39
|
"@react-native-firebase/auth": ">=18.0.0",
|
|
40
40
|
"@sudobility/di": "^1.5.31",
|
|
41
|
-
"@sudobility/di_web": "^0.1.
|
|
42
|
-
"@sudobility/di_rn": "^0.1.
|
|
41
|
+
"@sudobility/di_web": "^0.1.92",
|
|
42
|
+
"@sudobility/di_rn": "^0.1.17",
|
|
43
43
|
"@sudobility/types": "^1.9.49",
|
|
44
44
|
"@tanstack/react-query": "^5.0.0"
|
|
45
45
|
},
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@sudobility/di": "^1.5.31",
|
|
65
|
-
"@sudobility/di_web": "^0.1.
|
|
66
|
-
"@sudobility/di_rn": "^0.1.
|
|
65
|
+
"@sudobility/di_web": "^0.1.92",
|
|
66
|
+
"@sudobility/di_rn": "^0.1.17",
|
|
67
67
|
"@sudobility/types": "^1.9.49",
|
|
68
68
|
"@tanstack/react-query": "^5.80.7",
|
|
69
69
|
"@types/node": "^22.0.0",
|