Skip to content

Conversation

@Xiaoshouzi-gh
Copy link
Contributor

@Xiaoshouzi-gh Xiaoshouzi-gh commented Apr 9, 2024

This PR is for TW review for private preview. We will not merge it to main branch.

Xiaoshouzi-gh and others added 5 commits March 28, 2024 11:48
[Passkey #1 cloned] start passkey enrollment rpc (#11872)

1. implemented rpc call to startPasskeyEnrollment
2. defined startPasskeyEnrollment request and response
3. added unit tests

[Passkey #2] finalize passkey enrollment rpc (#11885)

Implemented finalizePasskeyEnrollment rpc call
Defined finalizePasskeyEnrollment Request and Response object
Added unit tests

[passkey #3] startPasskeySignIn RPC call (#11889)

Implemented start passkey sign in rpc call
Defined startPasskeySignInRequest & Response
Added Unit tests

[Passkey #4] finalizePasskeySignIn rpc (#11904)

1.  Implemented passkey finalize sign in rpc call
2. Defined finalizePasskeySignIn request & response
3. Added unit tests.

[Passkey #5] Auth startPasskeySignInWithCompletion: and finalizePasskeySignInWithPlatformCredential:completion (#11952)

[Passkey #6] Update passkey related proto naming change (#11953)

[Passkey #7] FIRUser startPasskeyEnrollmentWithName:completion: & finalizePasskeyEnrollmentWithPlatformCredential:completion: implementation (#11991)
[Passkey #8] Added enrolledPasskeys support on getAccountInfo rpc (#12002)

[Passkey #9] Passkey withdraw (#12127)
@google-oss-bot
Copy link

2 Warnings
⚠️ Did you forget to add a changelog entry? (Add #no-changelog to the PR description to silence this warning.)
⚠️ New public headers were added, did you remember to add them to the umbrella header?

Generated by 🚫 Danger

@github-actions
Copy link
Contributor

github-actions bot commented Apr 9, 2024

Apple API Diff Report

Commit: 1949880
Last updated: Tue Apr 9 08:20 PDT 2024
View workflow logs & download artifacts


FirebaseAuth

Classes

FIRUser
[ADDED] -finalizePasskeyEnrollmentWithPlatformCredential:completion:
Swift:
+  func finalizePasskeyEnrollment ( with platformCredential : ASAuthorizationPlatformPublicKeyCredentialRegistration ) async throws -> AuthDataResult
Objective-C:
+  - ( void ) finalizePasskeyEnrollmentWithPlatformCredential : ( nonnull ASAuthorizationPlatformPublicKeyCredentialRegistration * ) platformCredential completion : ( nullable void ( ^ )( FIRAuthDataResult * _Nullable , NSError * _Nullable )) completion ;
[ADDED] -startPasskeyEnrollmentWithName:completion:
Swift:
+  func startPasskeyEnrollment ( with name : String ?) async throws -> ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest
Objective-C:
+  - ( void ) startPasskeyEnrollmentWithName :( nullable NSString * ) name completion : ( nullable void ( ^ )( ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest * _Nullable , NSError * _Nullable )) completion ;
[ADDED] enrolledPasskeys
Swift:
+  var enrolledPasskeys : [ PasskeyInfo ] { get }
Objective-C:
+  @property ( nonatomic , readonly ) API_UNAVAILABLE ( watchos ) NSArray < FIRPasskeyInfo *> * enrolledPasskeys ;
[ADDED] -unenrollPasskeyWithCredentialID:completion:
Swift:
+  func unenrollPasskey ( with credentialID : String ) async throws
Objective-C:
+  - ( void ) unenrollPasskeyWithCredentialID :( nonnull NSString * ) credentialID completion :( nullable void ( ^ )( NSError * _Nullable )) completion ;
FIRAuth
[ADDED] -startPasskeySignInWithCompletion:
Swift:
+  func startPasskeySignIn () async throws -> ASAuthorizationPlatformPublicKeyCredentialAssertionRequest
Objective-C:
+  - ( void ) startPasskeySignInWithCompletion : ( nullable void ( ^ )( ASAuthorizationPlatformPublicKeyCredentialAssertionRequest * _Nullable , NSError * _Nullable )) completion ;
[ADDED] -finalizePasskeySignInWithPlatformCredential:completion:
Swift:
+  func finalizePasskeySignIn ( with platformCredential : ASAuthorizationPlatformPublicKeyCredentialAssertion ) async throws -> FIRAuthDataResult
Objective-C:
+  - ( void ) finalizePasskeySignInWithPlatformCredential : ( nonnull ASAuthorizationPlatformPublicKeyCredentialAssertion * ) platformCredential completion : ( nullable void ( ^ )( FIRAuthDataResult * _Nullable , NSError * _Nullable )) completion ;
[ADDED] FIRPasskeyInfo
[ADDED] FIRPasskeyInfo
Swift:
+  class PasskeyInfo : NSObject
+    var name : String { get }
+    var credentialID : String { get }
Objective-C:
+  @interface FIRPasskeyInfo : NSObject
+    @property ( nonatomic , readonly ) NSString * _Nonnull name ;
+    @property ( nonatomic , readonly ) NSString * _Nonnull credentialID ;

Enumerations

FIRAuthErrorCode
[ADDED] FIRAuthErrorCodePasskeyEnrollmentNotFound
Swift:
+  case passkeyEnrollmentNotFound = 17209
Objective-C:
+  FIRAuthErrorCodePasskeyEnrollmentNotFound = 17209

@google-oss-bot
Copy link

Coverage Report 1

Affected Products

  • FirebaseAuth-iOS-FirebaseAuth.framework

    Overall coverage changed from ? (03ce722) to 69.48% (1949880) by ?.

    129 individual files with coverage change

    FilenameBase (03ce722)Merge (1949880)Diff
    FIRActionCodeSettings.m?100.00%?
    FIRAdditionalUserInfo.m?92.31%?
    FIRAuth.m?83.59%?
    FIRAuthAPNSToken.m?100.00%?
    FIRAuthAPNSTokenManager.m?55.62%?
    FIRAuthAppCredential.m?91.30%?
    FIRAuthAppCredentialManager.m?100.00%?
    FIRAuthBackend+MultiFactor.m?37.89%?
    FIRAuthBackend.m?83.08%?
    FIRAuthCredential.m?38.89%?
    FIRAuthDataResult.m?41.38%?
    FIRAuthDefaultUIDelegate.m?0.00%?
    FIRAuthDispatcher.m?100.00%?
    FIRAuthErrorUtils.m?67.65%?
    FIRAuthExceptionUtils.m?0.00%?
    FIRAuthGlobalWorkQueue.m?100.00%?
    FIRAuthKeychainServices.m?59.66%?
    FIRAuthNotificationManager.m?84.68%?
    FIRAuthProtoFinalizeMFAPhoneRequestInfo.m?0.00%?
    FIRAuthProtoFinalizeMFAPhoneResponseInfo.m?0.00%?
    FIRAuthProtoFinalizeMFATOTPEnrollmentRequestInfo.m?100.00%?
    FIRAuthProtoFinalizeMFATOTPEnrollmentResponseInfo.m?0.00%?
    FIRAuthProtoFinalizeMFATOTPSignInRequestInfo.m?100.00%?
    FIRAuthProtoMFAEnrollment.m?89.47%?
    FIRAuthProtoStartMFAPhoneRequestInfo.m?0.00%?
    FIRAuthProtoStartMFAPhoneResponseInfo.m?0.00%?
    FIRAuthProtoStartMFATOTPEnrollmentRequestInfo.m?100.00%?
    FIRAuthProtoStartMFATOTPEnrollmentResponseInfo.m?0.00%?
    FIRAuthRecaptchaVerifier.m?10.79%?
    FIRAuthRequestConfiguration.m?100.00%?
    FIRAuthSerialTaskQueue.m?100.00%?
    FIRAuthSettings.m?58.33%?
    FIRAuthStoredUserManager.m?52.87%?
    FIRAuthTokenResult.m?78.67%?
    FIRAuthURLPresenter.m?51.68%?
    FIRAuthUserDefaults.m?100.00%?
    FIRAuthWebUtils.m?89.41%?
    FIRAuthWebView.m?0.00%?
    FIRAuthWebViewController.m?0.00%?
    FIRCreateAuthURIRequest.m?61.29%?
    FIRCreateAuthURIResponse.m?100.00%?
    FIRDeleteAccountRequest.m?100.00%?
    FIRDeleteAccountResponse.m?100.00%?
    FIREmailAuthProvider.m?54.55%?
    FIREmailLinkSignInRequest.m?90.91%?
    FIREmailLinkSignInResponse.m?60.87%?
    FIREmailPasswordAuthCredential.m?34.04%?
    FIRFacebookAuthCredential.m?38.46%?
    FIRFacebookAuthProvider.m?37.50%?
    FIRFinalizeMFAEnrollmentRequest.m?65.00%?
    FIRFinalizeMFAEnrollmentResponse.m?0.00%?
    FIRFinalizeMFASignInRequest.m?87.10%?
    FIRFinalizeMFASignInResponse.m?0.00%?
    FIRFinalizePasskeyEnrollmentRequest.m?95.00%?
    FIRFinalizePasskeyEnrollmentResponse.m?100.00%?
    FIRFinalizePasskeySignInRequest.m?95.00%?
    FIRFinalizePasskeySignInResponse.m?100.00%?
    FIRGameCenterAuthCredential.m?0.00%?
    FIRGameCenterAuthProvider.m?0.00%?
    FIRGetAccountInfoRequest.m?100.00%?
    FIRGetAccountInfoResponse.m?82.28%?
    FIRGetOOBConfirmationCodeRequest.m?86.55%?
    FIRGetOOBConfirmationCodeResponse.m?100.00%?
    FIRGetProjectConfigRequest.m?100.00%?
    FIRGetProjectConfigResponse.m?64.29%?
    FIRGetRecaptchaConfigRequest.m?77.27%?
    FIRGetRecaptchaConfigResponse.m?100.00%?
    FIRGitHubAuthCredential.m?38.46%?
    FIRGitHubAuthProvider.m?37.50%?
    FIRGoogleAuthCredential.m?40.00%?
    FIRGoogleAuthProvider.m?37.50%?
    FIRIdentityToolkitRequest.m?91.67%?
    FIRMultiFactor.m?12.12%?
    FIRMultiFactorInfo.m?89.29%?
    FIRMultiFactorResolver.m?11.34%?
    FIRMultiFactorSession.m?0.00%?
    FIROAuthCredential.m?50.00%?
    FIROAuthProvider.m?85.93%?
    FIRPasskeyInfo.m?100.00%?
    FIRPhoneAuthCredential.m?31.37%?
    FIRPhoneAuthProvider.m?56.02%?
    FIRPhoneMultiFactorAssertion.m?0.00%?
    FIRPhoneMultiFactorGenerator.m?0.00%?
    FIRPhoneMultiFactorInfo.m?86.36%?
    FIRResetPasswordRequest.m?89.47%?
    FIRResetPasswordResponse.m?100.00%?
    FIRRevokeTokenRequest.m?100.00%?
    FIRRevokeTokenResponse.m?100.00%?
    FIRSecureTokenRequest.m?56.82%?
    FIRSecureTokenResponse.m?0.00%?
    FIRSecureTokenService.m?91.39%?
    FIRSendVerificationCodeRequest.m?93.10%?
    FIRSendVerificationCodeResponse.m?57.14%?
    FIRSetAccountInfoRequest.m?96.77%?
    FIRSetAccountInfoResponse.m?100.00%?
    FIRSignInWithGameCenterRequest.m?100.00%?
    FIRSignInWithGameCenterResponse.m?100.00%?
    FIRSignUpNewUserRequest.m?96.30%?
    FIRSignUpNewUserResponse.m?100.00%?
    FIRStartMFAEnrollmentRequest.m?62.86%?
    FIRStartMFAEnrollmentResponse.m?0.00%?
    FIRStartMFASignInRequest.m?0.00%?
    FIRStartMFASignInResponse.m?0.00%?
    FIRStartPasskeyEnrollmentRequest.m?90.00%?
    FIRStartPasskeyEnrollmentResponse.m?100.00%?
    FIRStartPasskeySignInRequest.m?87.50%?
    FIRStartPasskeySignInResponse.m?85.71%?
    FIRTOTPMultiFactorAssertion.m?0.00%?
    FIRTOTPMultiFactorGenerator.m?0.00%?
    FIRTOTPMultiFactorInfo.m?0.00%?
    FIRTOTPSecret.m?0.00%?
    FIRTwitterAuthCredential.m?40.00%?
    FIRTwitterAuthProvider.m?37.50%?
    FIRUser.m?71.30%?
    FIRUserInfoImpl.m?93.75%?
    FIRUserMetadata.m?86.36%?
    FIRVerifyAssertionRequest.m?91.36%?
    FIRVerifyAssertionResponse.m?87.50%?
    FIRVerifyClientRequest.m?100.00%?
    FIRVerifyClientResponse.m?100.00%?
    FIRVerifyCustomTokenRequest.m?89.47%?
    FIRVerifyCustomTokenResponse.m?100.00%?
    FIRVerifyPasswordRequest.m?95.45%?
    FIRVerifyPasswordResponse.m?62.50%?
    FIRVerifyPhoneNumberRequest.m?82.76%?
    FIRVerifyPhoneNumberResponse.m?81.25%?
    FIRWithdrawMFARequest.m?0.00%?
    FIRWithdrawMFAResponse.m?0.00%?
    NSData+FIRBase64.m?100.00%?

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/YGwDsq2Zoh.html

@brief start sign in with passkey retrieving challenge from GCIP and create an assertion request.
@param completion Optionally; a block which creates a assertation request.
@remarks // TODO @liubinj add possible error codes
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a fast follow up after private preview. Let me know if you think it's better to remove it for now @kevinthecheung

@cbenhagen
Copy link
Contributor

Hi @Xiaoshouzi-gh, any news on this? How can I help to land this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants