Skip to content

Commit 03132d9

Browse files
committed
adding sign-in flow for totp
1 parent f9f292b commit 03132d9

File tree

15 files changed

+62
-166
lines changed

15 files changed

+62
-166
lines changed

packages/auth/.changeset/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Changesets
2+
3+
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4+
with multi-package repos, or single-package repos to help you version and publish your code. You can
5+
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6+
7+
We have a quick list of common questions to get you started engaging with this project in
8+
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---

packages/auth/.changeset/config.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
3+
"changelog": "@changesets/cli/changelog",
4+
"commit": false,
5+
"fixed": [],
6+
"linked": [],
7+
"access": "restricted",
8+
"baseBranch": "master",
9+
"updateInternalDependencies": "patch",
10+
"ignore": []
11+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@firebase/auth': patch
3+
---
4+
5+
Totp-work

packages/auth/src/api/authentication/mfa.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
} from '../index';
2424
import { Auth } from '../../model/public_types';
2525
import { IdTokenResponse } from '../../model/id_token';
26-
import { MfaEnrollment } from '../account_management/mfa';
26+
import { FinalizeTotpMfaEnrollmentRequest, MfaEnrollment, TotpVerificationInfo } from '../account_management/mfa';
2727
import { SignInWithIdpResponse } from './idp';
2828
import {
2929
SignInWithPhoneNumberRequest,
@@ -79,8 +79,16 @@ export interface FinalizePhoneMfaSignInRequest {
7979
tenantId?: string;
8080
}
8181

82+
export interface FinalizeTotpMfaSignInRequest {
83+
mfaPendingCredential: string;
84+
totpVerificationInfo: TotpVerificationInfo;
85+
tenantId?: string;
86+
}
87+
8288
export interface FinalizePhoneMfaSignInResponse extends FinalizeMfaResponse {}
8389

90+
export interface FinalizeTotpMfaSignInResponse extends FinalizeMfaResponse {}
91+
8492
export function finalizeSignInPhoneMfa(
8593
auth: Auth,
8694
request: FinalizePhoneMfaSignInRequest
@@ -96,6 +104,21 @@ export function finalizeSignInPhoneMfa(
96104
);
97105
}
98106

107+
export function finalizeSignInTotpMfa(
108+
auth:Auth,
109+
request: FinalizeTotpMfaSignInRequest
110+
): Promise<FinalizeTotpMfaSignInResponse> {
111+
return _performApiRequest<
112+
FinalizeTotpMfaSignInRequest,
113+
FinalizeTotpMfaSignInResponse
114+
>(
115+
auth,
116+
HttpMethod.POST,
117+
Endpoint.FINALIZE_MFA_SIGN_IN,
118+
_addTidIfNecessary(auth,request)
119+
120+
);
121+
}
99122
/**
100123
* @internal
101124
*/

packages/auth/src/mfa/assertions/totp.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import {
2626
StartTotpMfaEnrollmentResponse,
2727
TotpVerificationInfo
2828
} from '../../api/account_management/mfa';
29-
import { FinalizeMfaResponse } from '../../api/authentication/mfa';
29+
import { FinalizeMfaResponse, finalizeSignInPhoneMfa, finalizeSignInTotpMfa } from '../../api/authentication/mfa';
3030
import { MultiFactorAssertionImpl } from '../../mfa/mfa_assertion';
3131
import { MultiFactorSessionImpl } from '../mfa_session';
3232
import { AuthErrorCode } from '../../core/errors';
@@ -155,10 +155,18 @@ export class TotpMultiFactorAssertionImpl
155155

156156
/** @internal */
157157
_finalizeSignIn(
158-
_auth: AuthInternal,
159-
_mfaPendingCredential: string
158+
auth: AuthInternal,
159+
mfaPendingCredential: string
160160
): Promise<FinalizeMfaResponse> {
161-
throw new Error('method not implemented');
161+
_assert(
162+
typeof this.secret !== 'undefined',
163+
auth,
164+
AuthErrorCode.ARGUMENT_ERROR
165+
);
166+
return finalizeSignInTotpMfa(auth, {
167+
mfaPendingCredential,
168+
totpVerificationInfo: this.secret._makeTotpVerificationInfo(this.otp)
169+
})
162170
}
163171
}
164172

packages/database/.idea/runConfigurations/All_Tests.xml

Lines changed: 0 additions & 19 deletions
This file was deleted.

packages/firestore-compat/.idea/runConfigurations/Integration_Tests__Emulator_.xml

Lines changed: 0 additions & 18 deletions
This file was deleted.

packages/firestore/.idea/runConfigurations/All_Tests__Emulator_.xml

Lines changed: 0 additions & 18 deletions
This file was deleted.

packages/firestore/.idea/runConfigurations/All_Tests__Emulator_w__Mock_Persistence_.xml

Lines changed: 0 additions & 19 deletions
This file was deleted.

packages/firestore/.idea/runConfigurations/Integration_Tests__Emulator_.xml

Lines changed: 0 additions & 18 deletions
This file was deleted.

packages/firestore/.idea/runConfigurations/Integration_Tests__Emulator_w__Mock_Persistence_.xml

Lines changed: 0 additions & 19 deletions
This file was deleted.

packages/firestore/.idea/runConfigurations/Unit_Tests.xml

Lines changed: 0 additions & 14 deletions
This file was deleted.

packages/firestore/.idea/runConfigurations/Unit_Tests__w__Mock_Persistence_.xml

Lines changed: 0 additions & 17 deletions
This file was deleted.

packages/firestore/.idea/runConfigurations/firestore_lite_Tests__Emulator_.xml

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)