CreateCredentialResponse


public abstract class CreateCredentialResponse

Known direct subclasses
CreateCustomCredentialResponse

Base custom create response class for the credential creation operation made with the CreateCustomCredentialRequest.

CreatePasswordResponse

A response of a password saving flow.

CreatePublicKeyCredentialResponse

A response of a public key credential (passkey) flow.

CreateRestoreCredentialResponse

A response of the RestoreCredential flow.


Base response class for the credential creation operation made with the CreateCredentialRequest.

import androidx.credentials.CreateCustomCredentialResponse
import androidx.credentials.CreatePasswordResponse
import androidx.credentials.CreatePublicKeyCredentialResponse
import androidx.credentials.Credential
import androidx.credentials.CustomCredential
import androidx.credentials.PublicKeyCredential

when (response) {
    is CreatePasswordResponse ->
        // Password saved successfully, proceed to signed in experience.
        loginWithPassword()
    is CreatePublicKeyCredentialResponse ->
        // Validate and register the registration json from your server, and if successful
        // proceed to signed in experience.
        loginWithPasskey(response.registrationResponseJson)
    is CreateCustomCredentialResponse -> {
        // If you are also using any external sign-in libraries, parse them here with the
        // utility functions provided they provided.
        if (response.type == ExampleCustomCredential.TYPE) {
            try {
                val createExampleCustomCredentialResponse =
                    CreateExampleCustomCredentialResponse.createFrom(response)
                loginWithExampleCustomCredential(createExampleCustomCredentialResponse)
            } catch (e: CreateExampleCustomCredentialResponse.ParsingException) {
                // Unlikely to happen. If it does, you likely need to update the dependency
                // version of your external sign-in library.
                Log.e(TAG, "Failed to parse a CreateExampleCustomCredentialResponse", e)
            }
        } else {
            Log.w(
                TAG,
                "Received unrecognized response type ${response.type}. " +
                    "This shouldn't happen"
            )
        }
    }
    else -> {
        Log.w(
            TAG,
            "Received unrecognized response type ${response.type}. This shouldn't happen"
        )
    }
}

Summary

Public methods

static final @NonNull CreateCredentialResponse

Parses the raw data into an instance of CreateCredentialResponse.

final @NonNull Bundle

the response data in the Bundle format

final @NonNull String

the credential type determined by the credential-type-specific subclass (e.g. the type for CreatePasswordResponse is PasswordCredential.TYPE_PASSWORD_CREDENTIAL and for CreatePublicKeyCredentialResponse is PublicKeyCredential.TYPE_PUBLIC_KEY_CREDENTIAL)

Public methods

createFrom

Added in 1.6.0-alpha01
public static final @NonNull CreateCredentialResponse createFrom(@NonNull String type, @NonNull Bundle data)

Parses the raw data into an instance of CreateCredentialResponse.

It is recommended to construct a CreateCredentialResponse by directly instantiating a CreateCredentialResponse subclass, instead of using this API. This API should only be used by a small subset of system apps that reconstruct an existing object across IPC.

Parameters
@NonNull String type

matches CreateCredentialResponse.type, the credential type of the response

@NonNull Bundle data

matches CreateCredentialResponse.data, the credential response data in the Bundle format; this should be constructed and retrieved from the a given CreateCredentialResponse itself and never be created from scratch

getData

Added in 1.2.0
public final @NonNull Bundle getData()

the response data in the Bundle format

getType

Added in 1.2.0
public final @NonNull String getType()

the credential type determined by the credential-type-specific subclass (e.g. the type for CreatePasswordResponse is PasswordCredential.TYPE_PASSWORD_CREDENTIAL and for CreatePublicKeyCredentialResponse is PublicKeyCredential.TYPE_PUBLIC_KEY_CREDENTIAL)