firebase-admin-edge 1.0.24 → 1.0.25
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/LICENSE +1 -1
- package/README.md +192 -42
- package/dist/auth/auth-endpoint-errors.d.ts.map +1 -1
- package/dist/auth/auth-endpoint-errors.js +11 -0
- package/dist/auth/auth-endpoint-errors.js.map +1 -1
- package/dist/auth/auth-endpoint-errors.test.js +8 -0
- package/dist/auth/auth-endpoint-errors.test.js.map +1 -1
- package/dist/auth/auth-error-codes.d.ts +12 -0
- package/dist/auth/auth-error-codes.d.ts.map +1 -1
- package/dist/auth/auth-error-codes.js +12 -0
- package/dist/auth/auth-error-codes.js.map +1 -1
- package/dist/auth/firebase-admin-auth.d.ts +13 -0
- package/dist/auth/firebase-admin-auth.d.ts.map +1 -1
- package/dist/auth/firebase-admin-auth.js +28 -1
- package/dist/auth/firebase-admin-auth.js.map +1 -1
- package/dist/auth/firebase-auth-endpoints.d.ts +125 -1
- package/dist/auth/firebase-auth-endpoints.d.ts.map +1 -1
- package/dist/auth/firebase-auth-endpoints.js +141 -0
- package/dist/auth/firebase-auth-endpoints.js.map +1 -1
- package/dist/auth/firebase-auth.d.ts +7 -0
- package/dist/auth/firebase-auth.d.ts.map +1 -1
- package/dist/auth/firebase-auth.js +45 -3
- package/dist/auth/firebase-auth.js.map +1 -1
- package/dist/auth/firebase-auth.test.js +3 -3
- package/dist/auth/firebase-auth.test.js.map +1 -1
- package/dist/auth/firebase-types.d.ts +16 -6
- package/dist/auth/firebase-types.d.ts.map +1 -1
- package/dist/auth/oauth.d.ts +2 -2
- package/dist/auth/oauth.d.ts.map +1 -1
- package/dist/auth/oauth.js +8 -8
- package/dist/auth/oauth.js.map +1 -1
- package/dist/auth/oauth.test.js +11 -7
- package/dist/auth/oauth.test.js.map +1 -1
- package/dist/firebase-edge-errors.d.ts +4 -0
- package/dist/firebase-edge-errors.d.ts.map +1 -1
- package/dist/firebase-edge-errors.js +4 -0
- package/dist/firebase-edge-errors.js.map +1 -1
- package/dist/firebase-edge-server.d.ts +32 -0
- package/dist/firebase-edge-server.d.ts.map +1 -1
- package/dist/firebase-edge-server.js +170 -3
- package/dist/firebase-edge-server.js.map +1 -1
- package/package.json +8 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createSessionCookie, getAccountInfo } from './firebase-auth-endpoints.js';
|
|
1
|
+
import { createSessionCookie, getAccountInfo, revokeRefreshTokens } from './firebase-auth-endpoints.js';
|
|
2
2
|
import { signJWTCustomToken, verifyJWT, verifySessionJWT } from './firebase-jwt.js';
|
|
3
3
|
import { getToken } from './google-oauth.js';
|
|
4
4
|
import { FirebaseEdgeError, FirebaseAdminAuthErrorInfo, ensureError } from './errors.js';
|
|
@@ -277,6 +277,33 @@ export class FirebaseAdminAuth {
|
|
|
277
277
|
error: null
|
|
278
278
|
};
|
|
279
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
* Revokes a user's refresh tokens.
|
|
282
|
+
*
|
|
283
|
+
* @param uid User ID to revoke tokens for
|
|
284
|
+
* @returns Promise with object containing revoke response data or null, and error if any
|
|
285
|
+
*/
|
|
286
|
+
async revokeRefreshTokens(uid) {
|
|
287
|
+
const { data: token, error: getTokenError } = await this.getCachedToken();
|
|
288
|
+
if (getTokenError) {
|
|
289
|
+
return {
|
|
290
|
+
data: null,
|
|
291
|
+
error: new FirebaseEdgeError(FirebaseAdminAuthErrorInfo.ADMIN_SERVICE_ACCOUNT_TOKEN_FAILED, { cause: getTokenError })
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
const { data: revokeData, error: revokeError } = await revokeRefreshTokens(this.serviceAccountKey.project_id, uid, token.access_token, this.fetch, this.tenantId);
|
|
295
|
+
if (revokeError) {
|
|
296
|
+
console.error('Error revoking tokens:', revokeError);
|
|
297
|
+
return {
|
|
298
|
+
data: null,
|
|
299
|
+
error: new FirebaseEdgeError(FirebaseAdminAuthErrorInfo.ADMIN_REVOKE_TOKENS_FAILED, { cause: ensureError(revokeError) })
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
return {
|
|
303
|
+
data: revokeData,
|
|
304
|
+
error: null
|
|
305
|
+
};
|
|
306
|
+
}
|
|
280
307
|
/**
|
|
281
308
|
* Creates a custom Firebase authentication token for a given user.
|
|
282
309
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-admin-auth.js","sourceRoot":"","sources":["../../src/auth/firebase-admin-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,cAAc,
|
|
1
|
+
{"version":3,"file":"firebase-admin-auth.js","sourceRoot":"","sources":["../../src/auth/firebase-admin-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,64 @@
|
|
|
1
|
-
import type { FirebaseCreateAuthUriResponse, FirebaseIdpSignInResponse, FirebaseRefreshTokenResponse, FirebaseUpdateAccountResponse, UserInfo } from './firebase-types.js';
|
|
1
|
+
import type { FirebaseCreateAuthUriResponse, FirebaseIdpSignInResponse, FirebaseRefreshTokenResponse, FirebaseUpdateAccountResponse, UpdateAccountRequest, UserInfo } from './firebase-types.js';
|
|
2
2
|
import type { JsonWebKey } from 'crypto';
|
|
3
3
|
import type { FirebaseEdgeError } from './errors.js';
|
|
4
|
+
/**
|
|
5
|
+
* Exchanges a refresh token for a new Firebase ID token.
|
|
6
|
+
*
|
|
7
|
+
* @param refreshToken Firebase refresh token.
|
|
8
|
+
* @param key Firebase Web API key.
|
|
9
|
+
* @param fetchFn Optional fetch implementation (useful for runtimes like edge).
|
|
10
|
+
*/
|
|
4
11
|
export declare function refreshFirebaseIdToken(refreshToken: string, key: string, fetchFn?: typeof globalThis.fetch): Promise<{
|
|
5
12
|
data: FirebaseRefreshTokenResponse | null;
|
|
6
13
|
error: FirebaseEdgeError | null;
|
|
7
14
|
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Creates an Auth URI to initiate an OAuth sign-in flow (Google by default).
|
|
17
|
+
*
|
|
18
|
+
* @param redirect_uri Redirect/continue URL.
|
|
19
|
+
* @param key Firebase Web API key.
|
|
20
|
+
* @param tenantId Optional tenant ID.
|
|
21
|
+
* @param fetchFn Optional fetch implementation.
|
|
22
|
+
*/
|
|
8
23
|
export declare function createAuthUri(redirect_uri: string, key: string, tenantId?: string, fetchFn?: typeof globalThis.fetch): Promise<{
|
|
9
24
|
data: FirebaseCreateAuthUriResponse | null;
|
|
10
25
|
error: FirebaseEdgeError | null;
|
|
11
26
|
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Signs a user in via an identity provider (Google/GitHub/etc.) using the IdP token.
|
|
29
|
+
*
|
|
30
|
+
* @param providerIdToken The IdP token (GitHub access token or OIDC ID token).
|
|
31
|
+
* @param requestUri The origin/URL of the sign-in request.
|
|
32
|
+
* @param providerId Provider ID (e.g. "google.com", "github.com").
|
|
33
|
+
* @param key Firebase Web API key.
|
|
34
|
+
* @param tenantId Optional tenant ID.
|
|
35
|
+
* @param fetchFn Optional fetch implementation.
|
|
36
|
+
*/
|
|
12
37
|
export declare function signInWithIdp(providerIdToken: string, requestUri: string, providerId: string | undefined, key: string, tenantId?: string, fetchFn?: typeof globalThis.fetch): Promise<{
|
|
13
38
|
data: FirebaseIdpSignInResponse | null;
|
|
14
39
|
error: FirebaseEdgeError | null;
|
|
15
40
|
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Signs a user in with a Firebase custom token.
|
|
43
|
+
*
|
|
44
|
+
* @param jwtToken Firebase custom token (JWT).
|
|
45
|
+
* @param key Firebase Web API key.
|
|
46
|
+
* @param tenantId Optional tenant ID.
|
|
47
|
+
* @param fetchFn Optional fetch implementation.
|
|
48
|
+
*/
|
|
16
49
|
export declare function signInWithCustomToken(jwtToken: string, key: string, tenantId?: string, fetchFn?: typeof globalThis.fetch): Promise<{
|
|
17
50
|
data: FirebaseIdpSignInResponse | null;
|
|
18
51
|
error: FirebaseEdgeError | null;
|
|
19
52
|
}>;
|
|
53
|
+
/**
|
|
54
|
+
* Looks up a user record by UID, email, or phone number.
|
|
55
|
+
*
|
|
56
|
+
* @param identifier Lookup key (uid/email/phoneNumber).
|
|
57
|
+
* @param token Google OAuth access token with Identity Toolkit scope.
|
|
58
|
+
* @param project_id Firebase project ID.
|
|
59
|
+
* @param tenantId Optional tenant ID.
|
|
60
|
+
* @param fetchFn Optional fetch implementation.
|
|
61
|
+
*/
|
|
20
62
|
export declare function getAccountInfo(identifier: {
|
|
21
63
|
uid: string;
|
|
22
64
|
} | {
|
|
@@ -27,20 +69,45 @@ export declare function getAccountInfo(identifier: {
|
|
|
27
69
|
data: UserInfo | null | undefined;
|
|
28
70
|
error: FirebaseEdgeError | null;
|
|
29
71
|
}>;
|
|
72
|
+
/**
|
|
73
|
+
* Creates a Firebase session cookie from an ID token.
|
|
74
|
+
*
|
|
75
|
+
* @param idToken Firebase ID token.
|
|
76
|
+
* @param token Google OAuth access token with Identity Toolkit scope.
|
|
77
|
+
* @param project_id Firebase project ID.
|
|
78
|
+
* @param expiresIn_ms Session cookie TTL in milliseconds.
|
|
79
|
+
* @param tenantId Optional tenant ID.
|
|
80
|
+
* @param fetchFn Optional fetch implementation.
|
|
81
|
+
*/
|
|
30
82
|
export declare function createSessionCookie(idToken: string, token: string, project_id: string, expiresIn_ms?: number, tenantId?: string, fetchFn?: typeof globalThis.fetch): Promise<{
|
|
31
83
|
data: string | null;
|
|
32
84
|
error: FirebaseEdgeError | null;
|
|
33
85
|
}>;
|
|
86
|
+
/**
|
|
87
|
+
* Fetches Secure Token Service JSON Web Keys (JWKs) used to verify Firebase ID tokens.
|
|
88
|
+
*
|
|
89
|
+
* @param fetchFn Optional fetch implementation.
|
|
90
|
+
*/
|
|
34
91
|
export declare function getJWKs(fetchFn?: typeof globalThis.fetch): Promise<{
|
|
35
92
|
data: (JsonWebKey & {
|
|
36
93
|
kid: string;
|
|
37
94
|
})[] | null;
|
|
38
95
|
error: FirebaseEdgeError | null;
|
|
39
96
|
}>;
|
|
97
|
+
/**
|
|
98
|
+
* Fetches Firebase Auth public keys (legacy endpoint).
|
|
99
|
+
*
|
|
100
|
+
* @param fetchFn Optional fetch implementation.
|
|
101
|
+
*/
|
|
40
102
|
export declare function getPublicKeys(fetchFn?: typeof globalThis.fetch): Promise<{
|
|
41
103
|
data: Record<string, string> | null;
|
|
42
104
|
error: FirebaseEdgeError | null;
|
|
43
105
|
}>;
|
|
106
|
+
/**
|
|
107
|
+
* Sends an out-of-band email action.
|
|
108
|
+
*
|
|
109
|
+
* Overloads support password reset and email verification.
|
|
110
|
+
*/
|
|
44
111
|
export declare function sendOobCode(requestType: 'PASSWORD_RESET', key: string, options: {
|
|
45
112
|
email: string;
|
|
46
113
|
locale?: string;
|
|
@@ -61,16 +128,73 @@ export declare function sendOobCode(requestType: 'VERIFY_EMAIL', key: string, op
|
|
|
61
128
|
} | null;
|
|
62
129
|
error: FirebaseEdgeError | null;
|
|
63
130
|
}>;
|
|
131
|
+
/**
|
|
132
|
+
* Completes email-link sign-in using an OOB code.
|
|
133
|
+
*
|
|
134
|
+
* @param oobCode Out-of-band code from the email link.
|
|
135
|
+
* @param email Email address used in the sign-in flow.
|
|
136
|
+
* @param key Firebase Web API key.
|
|
137
|
+
* @param idToken Optional existing ID token (for linking flows).
|
|
138
|
+
* @param tenantId Optional tenant ID.
|
|
139
|
+
* @param fetchFn Optional fetch implementation.
|
|
140
|
+
*/
|
|
64
141
|
export declare function signInWithEmailLink(oobCode: string, email: string, key: string, idToken?: string, tenantId?: string, fetchFn?: typeof globalThis.fetch): Promise<{
|
|
65
142
|
data: FirebaseIdpSignInResponse | null;
|
|
66
143
|
error: FirebaseEdgeError | null;
|
|
67
144
|
}>;
|
|
145
|
+
/**
|
|
146
|
+
* Links an OAuth credential to an existing Firebase user.
|
|
147
|
+
*
|
|
148
|
+
* @param idToken Current user's Firebase ID token.
|
|
149
|
+
* @param providerIdToken The IdP token (GitHub access token or OIDC ID token).
|
|
150
|
+
* @param requestUri The origin/URL of the linking request.
|
|
151
|
+
* @param providerId Provider ID (e.g. "google.com", "github.com").
|
|
152
|
+
* @param key Firebase Web API key.
|
|
153
|
+
* @param tenantId Optional tenant ID.
|
|
154
|
+
* @param fetchFn Optional fetch implementation.
|
|
155
|
+
*/
|
|
68
156
|
export declare function linkWithOAuthCredential(idToken: string, providerIdToken: string, requestUri: string, providerId: string, key: string, tenantId?: string, fetchFn?: typeof globalThis.fetch): Promise<{
|
|
69
157
|
data: FirebaseIdpSignInResponse | null;
|
|
70
158
|
error: FirebaseEdgeError | null;
|
|
71
159
|
}>;
|
|
160
|
+
/**
|
|
161
|
+
* Unlinks a provider from a Firebase user.
|
|
162
|
+
*
|
|
163
|
+
* @param idToken Current user's Firebase ID token.
|
|
164
|
+
* @param providerId Provider ID to remove.
|
|
165
|
+
* @param key Firebase Web API key.
|
|
166
|
+
* @param tenantId Optional tenant ID.
|
|
167
|
+
* @param fetchFn Optional fetch implementation.
|
|
168
|
+
*/
|
|
72
169
|
export declare function unlinkProvider(idToken: string, providerId: string, key: string, tenantId?: string, fetchFn?: typeof globalThis.fetch): Promise<{
|
|
73
170
|
data: FirebaseUpdateAccountResponse | null;
|
|
74
171
|
error: FirebaseEdgeError | null;
|
|
75
172
|
}>;
|
|
173
|
+
/**
|
|
174
|
+
* Updates a user via the Identity Toolkit Admin API.
|
|
175
|
+
*
|
|
176
|
+
* @param projectId Firebase project ID.
|
|
177
|
+
* @param localId User UID.
|
|
178
|
+
* @param updates UpdateAccount request fields.
|
|
179
|
+
* @param googleOAuthAccessToken Google OAuth access token with Identity Toolkit scope.
|
|
180
|
+
* @param fetchFn Optional fetch implementation.
|
|
181
|
+
* @param tenantId Optional tenant ID.
|
|
182
|
+
*/
|
|
183
|
+
export declare function updateAccountAdmin(projectId: string, localId: string, updates: UpdateAccountRequest, googleOAuthAccessToken: string, fetchFn?: typeof globalThis.fetch, tenantId?: string): Promise<{
|
|
184
|
+
data: FirebaseUpdateAccountResponse | null;
|
|
185
|
+
error: FirebaseEdgeError | null;
|
|
186
|
+
}>;
|
|
187
|
+
/**
|
|
188
|
+
* Revokes refresh tokens for a user by setting `validSince` to now.
|
|
189
|
+
*
|
|
190
|
+
* @param projectId Firebase project ID.
|
|
191
|
+
* @param uid User UID.
|
|
192
|
+
* @param googleOAuthAccessToken Google OAuth access token with Identity Toolkit scope.
|
|
193
|
+
* @param fetchFn Optional fetch implementation.
|
|
194
|
+
* @param tenantId Optional tenant ID.
|
|
195
|
+
*/
|
|
196
|
+
export declare function revokeRefreshTokens(projectId: string, uid: string, googleOAuthAccessToken: string, fetchFn?: typeof globalThis.fetch, tenantId?: string): Promise<{
|
|
197
|
+
data: FirebaseUpdateAccountResponse | null;
|
|
198
|
+
error: FirebaseEdgeError | null;
|
|
199
|
+
}>;
|
|
76
200
|
//# sourceMappingURL=firebase-auth-endpoints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-auth-endpoints.d.ts","sourceRoot":"","sources":["../../src/auth/firebase-auth-endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,6BAA6B,EAC7B,yBAAyB,EACzB,4BAA4B,EAE5B,6BAA6B,EAC7B,QAAQ,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"firebase-auth-endpoints.d.ts","sourceRoot":"","sources":["../../src/auth/firebase-auth-endpoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { restFetch } from '../rest-fetch.js';
|
|
2
2
|
import { mapFirebaseError } from './auth-endpoint-errors.js';
|
|
3
3
|
// Functions
|
|
4
|
+
/**
|
|
5
|
+
* Builds an Identity Toolkit Admin API URL.
|
|
6
|
+
*
|
|
7
|
+
* If a tenant ID is provided, the URL targets Identity Platform tenant resources.
|
|
8
|
+
*/
|
|
4
9
|
function createAdminIdentityURL(project_id, name, accounts = true, tenantId) {
|
|
5
10
|
if (tenantId) {
|
|
6
11
|
// Use Identity Platform API for tenant-specific operations
|
|
@@ -8,10 +13,22 @@ function createAdminIdentityURL(project_id, name, accounts = true, tenantId) {
|
|
|
8
13
|
}
|
|
9
14
|
return `https://identitytoolkit.googleapis.com/v1/projects/${project_id}${accounts ? '/accounts' : ''}:${name}`;
|
|
10
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Builds a standard Firebase Auth REST API URL.
|
|
18
|
+
*
|
|
19
|
+
* Note: tenant ID is provided in the request body for these endpoints.
|
|
20
|
+
*/
|
|
11
21
|
function createIdentityURL(name) {
|
|
12
22
|
// Standard Firebase Auth REST API - tenant ID goes in request body, not URL
|
|
13
23
|
return `https://identitytoolkit.googleapis.com/v1/accounts:${name}`;
|
|
14
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Exchanges a refresh token for a new Firebase ID token.
|
|
27
|
+
*
|
|
28
|
+
* @param refreshToken Firebase refresh token.
|
|
29
|
+
* @param key Firebase Web API key.
|
|
30
|
+
* @param fetchFn Optional fetch implementation (useful for runtimes like edge).
|
|
31
|
+
*/
|
|
15
32
|
export async function refreshFirebaseIdToken(refreshToken, key, fetchFn) {
|
|
16
33
|
const url = `https://securetoken.googleapis.com/v1/token`;
|
|
17
34
|
const { data, error } = await restFetch(url, {
|
|
@@ -30,6 +47,14 @@ export async function refreshFirebaseIdToken(refreshToken, key, fetchFn) {
|
|
|
30
47
|
error: error ? mapFirebaseError(error.error) : null
|
|
31
48
|
};
|
|
32
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates an Auth URI to initiate an OAuth sign-in flow (Google by default).
|
|
52
|
+
*
|
|
53
|
+
* @param redirect_uri Redirect/continue URL.
|
|
54
|
+
* @param key Firebase Web API key.
|
|
55
|
+
* @param tenantId Optional tenant ID.
|
|
56
|
+
* @param fetchFn Optional fetch implementation.
|
|
57
|
+
*/
|
|
33
58
|
export async function createAuthUri(redirect_uri, key, tenantId, fetchFn) {
|
|
34
59
|
const url = createIdentityURL('createAuthUri');
|
|
35
60
|
const body = {
|
|
@@ -49,6 +74,16 @@ export async function createAuthUri(redirect_uri, key, tenantId, fetchFn) {
|
|
|
49
74
|
error: error ? mapFirebaseError(error.error) : null
|
|
50
75
|
};
|
|
51
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Signs a user in via an identity provider (Google/GitHub/etc.) using the IdP token.
|
|
79
|
+
*
|
|
80
|
+
* @param providerIdToken The IdP token (GitHub access token or OIDC ID token).
|
|
81
|
+
* @param requestUri The origin/URL of the sign-in request.
|
|
82
|
+
* @param providerId Provider ID (e.g. "google.com", "github.com").
|
|
83
|
+
* @param key Firebase Web API key.
|
|
84
|
+
* @param tenantId Optional tenant ID.
|
|
85
|
+
* @param fetchFn Optional fetch implementation.
|
|
86
|
+
*/
|
|
52
87
|
export async function signInWithIdp(providerIdToken, requestUri, providerId = 'google.com', key, tenantId, fetchFn) {
|
|
53
88
|
const url = createIdentityURL('signInWithIdp');
|
|
54
89
|
const tokenField = providerId === 'github.com' ? 'access_token' : 'id_token';
|
|
@@ -75,6 +110,14 @@ export async function signInWithIdp(providerIdToken, requestUri, providerId = 'g
|
|
|
75
110
|
error: error ? mapFirebaseError(error.error) : null
|
|
76
111
|
};
|
|
77
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Signs a user in with a Firebase custom token.
|
|
115
|
+
*
|
|
116
|
+
* @param jwtToken Firebase custom token (JWT).
|
|
117
|
+
* @param key Firebase Web API key.
|
|
118
|
+
* @param tenantId Optional tenant ID.
|
|
119
|
+
* @param fetchFn Optional fetch implementation.
|
|
120
|
+
*/
|
|
78
121
|
export async function signInWithCustomToken(jwtToken, key, tenantId, fetchFn) {
|
|
79
122
|
const url = createIdentityURL('signInWithCustomToken');
|
|
80
123
|
const body = {
|
|
@@ -94,6 +137,15 @@ export async function signInWithCustomToken(jwtToken, key, tenantId, fetchFn) {
|
|
|
94
137
|
error: error ? mapFirebaseError(error.error) : null
|
|
95
138
|
};
|
|
96
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Looks up a user record by UID, email, or phone number.
|
|
142
|
+
*
|
|
143
|
+
* @param identifier Lookup key (uid/email/phoneNumber).
|
|
144
|
+
* @param token Google OAuth access token with Identity Toolkit scope.
|
|
145
|
+
* @param project_id Firebase project ID.
|
|
146
|
+
* @param tenantId Optional tenant ID.
|
|
147
|
+
* @param fetchFn Optional fetch implementation.
|
|
148
|
+
*/
|
|
97
149
|
export async function getAccountInfo(identifier, token, project_id, tenantId, fetchFn) {
|
|
98
150
|
const url = createAdminIdentityURL(project_id, 'lookup', true, tenantId);
|
|
99
151
|
const body = {
|
|
@@ -115,6 +167,16 @@ export async function getAccountInfo(identifier, token, project_id, tenantId, fe
|
|
|
115
167
|
error: error ? mapFirebaseError(error.error) : null
|
|
116
168
|
};
|
|
117
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Creates a Firebase session cookie from an ID token.
|
|
172
|
+
*
|
|
173
|
+
* @param idToken Firebase ID token.
|
|
174
|
+
* @param token Google OAuth access token with Identity Toolkit scope.
|
|
175
|
+
* @param project_id Firebase project ID.
|
|
176
|
+
* @param expiresIn_ms Session cookie TTL in milliseconds.
|
|
177
|
+
* @param tenantId Optional tenant ID.
|
|
178
|
+
* @param fetchFn Optional fetch implementation.
|
|
179
|
+
*/
|
|
118
180
|
export async function createSessionCookie(idToken, token, project_id, expiresIn_ms = 60 * 60 * 24 * 14 * 1000, tenantId, fetchFn) {
|
|
119
181
|
const url = createAdminIdentityURL(project_id, 'createSessionCookie', false, tenantId);
|
|
120
182
|
const body = {
|
|
@@ -132,6 +194,11 @@ export async function createSessionCookie(idToken, token, project_id, expiresIn_
|
|
|
132
194
|
error: error ? mapFirebaseError(error.error) : null
|
|
133
195
|
};
|
|
134
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Fetches Secure Token Service JSON Web Keys (JWKs) used to verify Firebase ID tokens.
|
|
199
|
+
*
|
|
200
|
+
* @param fetchFn Optional fetch implementation.
|
|
201
|
+
*/
|
|
135
202
|
export async function getJWKs(fetchFn) {
|
|
136
203
|
const url = 'https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com';
|
|
137
204
|
const { data, error } = await restFetch(url, {
|
|
@@ -143,6 +210,11 @@ export async function getJWKs(fetchFn) {
|
|
|
143
210
|
error: error ? mapFirebaseError(error.error) : null
|
|
144
211
|
};
|
|
145
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Fetches Firebase Auth public keys (legacy endpoint).
|
|
215
|
+
*
|
|
216
|
+
* @param fetchFn Optional fetch implementation.
|
|
217
|
+
*/
|
|
146
218
|
export async function getPublicKeys(fetchFn) {
|
|
147
219
|
const url = 'https://www.googleapis.com/identitytoolkit/v3/relyingparty/publicKeys';
|
|
148
220
|
const { data, error } = await restFetch(url, {
|
|
@@ -181,6 +253,16 @@ export async function sendOobCode(requestType, key, options, tenantId, fetchFn)
|
|
|
181
253
|
error: error ? mapFirebaseError(error.error) : null
|
|
182
254
|
};
|
|
183
255
|
}
|
|
256
|
+
/**
|
|
257
|
+
* Completes email-link sign-in using an OOB code.
|
|
258
|
+
*
|
|
259
|
+
* @param oobCode Out-of-band code from the email link.
|
|
260
|
+
* @param email Email address used in the sign-in flow.
|
|
261
|
+
* @param key Firebase Web API key.
|
|
262
|
+
* @param idToken Optional existing ID token (for linking flows).
|
|
263
|
+
* @param tenantId Optional tenant ID.
|
|
264
|
+
* @param fetchFn Optional fetch implementation.
|
|
265
|
+
*/
|
|
184
266
|
export async function signInWithEmailLink(oobCode, email, key, idToken, tenantId, fetchFn) {
|
|
185
267
|
const url = createIdentityURL('signInWithEmailLink');
|
|
186
268
|
const body = {
|
|
@@ -201,6 +283,17 @@ export async function signInWithEmailLink(oobCode, email, key, idToken, tenantId
|
|
|
201
283
|
error: error ? mapFirebaseError(error.error) : null
|
|
202
284
|
};
|
|
203
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Links an OAuth credential to an existing Firebase user.
|
|
288
|
+
*
|
|
289
|
+
* @param idToken Current user's Firebase ID token.
|
|
290
|
+
* @param providerIdToken The IdP token (GitHub access token or OIDC ID token).
|
|
291
|
+
* @param requestUri The origin/URL of the linking request.
|
|
292
|
+
* @param providerId Provider ID (e.g. "google.com", "github.com").
|
|
293
|
+
* @param key Firebase Web API key.
|
|
294
|
+
* @param tenantId Optional tenant ID.
|
|
295
|
+
* @param fetchFn Optional fetch implementation.
|
|
296
|
+
*/
|
|
204
297
|
export async function linkWithOAuthCredential(idToken, providerIdToken, requestUri, providerId, key, tenantId, fetchFn) {
|
|
205
298
|
const url = createIdentityURL('signInWithIdp');
|
|
206
299
|
const tokenField = providerId === 'github.com' ? 'access_token' : 'id_token';
|
|
@@ -228,6 +321,15 @@ export async function linkWithOAuthCredential(idToken, providerIdToken, requestU
|
|
|
228
321
|
error: error ? mapFirebaseError(error.error) : null
|
|
229
322
|
};
|
|
230
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* Unlinks a provider from a Firebase user.
|
|
326
|
+
*
|
|
327
|
+
* @param idToken Current user's Firebase ID token.
|
|
328
|
+
* @param providerId Provider ID to remove.
|
|
329
|
+
* @param key Firebase Web API key.
|
|
330
|
+
* @param tenantId Optional tenant ID.
|
|
331
|
+
* @param fetchFn Optional fetch implementation.
|
|
332
|
+
*/
|
|
231
333
|
export async function unlinkProvider(idToken, providerId, key, tenantId, fetchFn) {
|
|
232
334
|
const url = createIdentityURL('update');
|
|
233
335
|
const body = {
|
|
@@ -247,4 +349,43 @@ export async function unlinkProvider(idToken, providerId, key, tenantId, fetchFn
|
|
|
247
349
|
error: error ? mapFirebaseError(error.error) : null
|
|
248
350
|
};
|
|
249
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* Updates a user via the Identity Toolkit Admin API.
|
|
354
|
+
*
|
|
355
|
+
* @param projectId Firebase project ID.
|
|
356
|
+
* @param localId User UID.
|
|
357
|
+
* @param updates UpdateAccount request fields.
|
|
358
|
+
* @param googleOAuthAccessToken Google OAuth access token with Identity Toolkit scope.
|
|
359
|
+
* @param fetchFn Optional fetch implementation.
|
|
360
|
+
* @param tenantId Optional tenant ID.
|
|
361
|
+
*/
|
|
362
|
+
export async function updateAccountAdmin(projectId, localId, updates, googleOAuthAccessToken, fetchFn, tenantId) {
|
|
363
|
+
const url = createAdminIdentityURL(projectId, 'update', true, tenantId);
|
|
364
|
+
const body = {
|
|
365
|
+
localId,
|
|
366
|
+
...updates
|
|
367
|
+
};
|
|
368
|
+
const { data, error } = await restFetch(url, {
|
|
369
|
+
global: { fetch: fetchFn },
|
|
370
|
+
body,
|
|
371
|
+
bearerToken: googleOAuthAccessToken
|
|
372
|
+
});
|
|
373
|
+
return {
|
|
374
|
+
data,
|
|
375
|
+
error: error ? mapFirebaseError(error.error) : null
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Revokes refresh tokens for a user by setting `validSince` to now.
|
|
380
|
+
*
|
|
381
|
+
* @param projectId Firebase project ID.
|
|
382
|
+
* @param uid User UID.
|
|
383
|
+
* @param googleOAuthAccessToken Google OAuth access token with Identity Toolkit scope.
|
|
384
|
+
* @param fetchFn Optional fetch implementation.
|
|
385
|
+
* @param tenantId Optional tenant ID.
|
|
386
|
+
*/
|
|
387
|
+
export async function revokeRefreshTokens(projectId, uid, googleOAuthAccessToken, fetchFn, tenantId) {
|
|
388
|
+
const nowSeconds = Math.floor(Date.now() / 1000).toString();
|
|
389
|
+
return updateAccountAdmin(projectId, uid, { validSince: nowSeconds }, googleOAuthAccessToken, fetchFn, tenantId);
|
|
390
|
+
}
|
|
250
391
|
//# sourceMappingURL=firebase-auth-endpoints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-auth-endpoints.js","sourceRoot":"","sources":["../../src/auth/firebase-auth-endpoints.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"firebase-auth-endpoints.js","sourceRoot":"","sources":["../../src/auth/firebase-auth-endpoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,5 +60,12 @@ export declare class FirebaseAuth {
|
|
|
60
60
|
data: import("./firebase-types.js").FirebaseIdpSignInResponse;
|
|
61
61
|
error: null;
|
|
62
62
|
}>;
|
|
63
|
+
unlink(idToken: string, providerId: string): Promise<{
|
|
64
|
+
data: null;
|
|
65
|
+
error: FirebaseEdgeError;
|
|
66
|
+
} | {
|
|
67
|
+
data: import("./firebase-types.js").FirebaseUpdateAccountResponse;
|
|
68
|
+
error: null;
|
|
69
|
+
}>;
|
|
63
70
|
}
|
|
64
71
|
//# sourceMappingURL=firebase-auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-auth.d.ts","sourceRoot":"","sources":["../../src/auth/firebase-auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"firebase-auth.d.ts","sourceRoot":"","sources":["../../src/auth/firebase-auth.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAe,MAAM,aAAa,CAAC;AAG7D;;;GAGG;AACH,qBAAa,YAAY;IAUjB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ,CAAC;IACjB,OAAO,CAAC,KAAK,CAAC;IAZlB;;;;;;;OAOG;gBAES,eAAe,EAAE,cAAc,EAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,YAAA;IAG3C;;;;;;OAMG;IACG,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,SAAe;;;;;;;IAuDtE;;;;;OAKG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM;;;;;;;IA0D/C;;;;;;;OAOG;IACG,kBAAkB,CACpB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,UAAU,SAAe;;;;;;;IAiEvB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;;;;;;;CA4DnD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { signInWithCustomToken, signInWithIdp, linkWithOAuthCredential } from './firebase-auth-endpoints.js';
|
|
1
|
+
import { signInWithCustomToken, signInWithIdp, linkWithOAuthCredential, unlinkProvider } from './firebase-auth-endpoints.js';
|
|
2
2
|
import { FirebaseEdgeError, ensureError } from './errors.js';
|
|
3
3
|
import { FirebaseAuthErrorInfo } from './auth-error-codes.js';
|
|
4
4
|
/**
|
|
@@ -125,7 +125,7 @@ export class FirebaseAuth {
|
|
|
125
125
|
if (linkError) {
|
|
126
126
|
return {
|
|
127
127
|
data: null,
|
|
128
|
-
error: new FirebaseEdgeError(FirebaseAuthErrorInfo.
|
|
128
|
+
error: new FirebaseEdgeError(FirebaseAuthErrorInfo.AUTH_PROVIDER_LINK_FAILED, {
|
|
129
129
|
cause: ensureError(linkError),
|
|
130
130
|
context: { providerId, requestUri: this.requestUri }
|
|
131
131
|
})
|
|
@@ -151,7 +151,7 @@ export class FirebaseAuth {
|
|
|
151
151
|
catch (err) {
|
|
152
152
|
return {
|
|
153
153
|
data: null,
|
|
154
|
-
error: new FirebaseEdgeError(FirebaseAuthErrorInfo.
|
|
154
|
+
error: new FirebaseEdgeError(FirebaseAuthErrorInfo.AUTH_PROVIDER_LINK_FAILED, {
|
|
155
155
|
cause: ensureError(err),
|
|
156
156
|
context: {
|
|
157
157
|
providerId,
|
|
@@ -162,5 +162,47 @@ export class FirebaseAuth {
|
|
|
162
162
|
};
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
|
+
async unlink(idToken, providerId) {
|
|
166
|
+
try {
|
|
167
|
+
const { data: unlinkData, error: unlinkError } = await unlinkProvider(idToken, providerId, this.firebase_config.apiKey, this.tenantId, this.fetch);
|
|
168
|
+
if (unlinkError) {
|
|
169
|
+
return {
|
|
170
|
+
data: null,
|
|
171
|
+
error: new FirebaseEdgeError(FirebaseAuthErrorInfo.AUTH_PROVIDER_UNLINK_FAILED, {
|
|
172
|
+
cause: ensureError(unlinkError),
|
|
173
|
+
context: { providerId }
|
|
174
|
+
})
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
if (!unlinkData) {
|
|
178
|
+
return {
|
|
179
|
+
data: null,
|
|
180
|
+
error: new FirebaseEdgeError(FirebaseAuthErrorInfo.AUTH_PROVIDER_DATA_MISSING, {
|
|
181
|
+
context: {
|
|
182
|
+
providerId,
|
|
183
|
+
operation: 'unlink'
|
|
184
|
+
}
|
|
185
|
+
})
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
data: unlinkData,
|
|
190
|
+
error: null
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
return {
|
|
195
|
+
data: null,
|
|
196
|
+
error: new FirebaseEdgeError(FirebaseAuthErrorInfo.AUTH_PROVIDER_UNLINK_FAILED, {
|
|
197
|
+
cause: ensureError(err),
|
|
198
|
+
context: {
|
|
199
|
+
providerId,
|
|
200
|
+
requestUri: this.requestUri,
|
|
201
|
+
operation: 'unlink'
|
|
202
|
+
}
|
|
203
|
+
})
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
}
|
|
165
207
|
}
|
|
166
208
|
//# sourceMappingURL=firebase-auth.js.map
|