Credential
public abstract class Credential
CustomCredential |
Base class for a custom credential with which the user consented to authenticate to the app. |
DigitalCredential |
Represents the user's digital credential, generally used for verification or sign-in purposes. |
PasswordCredential |
Represents the user's password credential granted by the user for app sign-in. |
PublicKeyCredential |
Represents the user's passkey credential granted by the user for app sign-in. |
RestoreCredential |
Represents the user's restore credential for the app sign in. |
Base class for a credential with which the user consented to authenticate to the app.
import androidx.credentials.Credential import androidx.credentials.CustomCredential import androidx.credentials.PasswordCredential import androidx.credentials.PublicKeyCredential when (credential) { is PublicKeyCredential -> { val responseJson = credential.authenticationResponseJson val userCredential = fidoAuthenticateWithServer(responseJson) loginWithPasskey(userCredential) } is PasswordCredential -> { val userName = credential.id val password = credential.password loginWithPassword(userName, password) } is CustomCredential -> { // If you are also using any external sign-in libraries, parse them here with the // utility functions provided they provided. if (credential.type == ExampleCustomCredential.TYPE) { try { val exampleCustomCredential = ExampleCustomCredential.createFrom(credential.data) loginWithExampleCustomCredential(exampleCustomCredential) } catch (e: ExampleCustomCredential.ExampleCustomCredentialParsingException) { // 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 an ExampleCustomCredential", e) } } else { Log.w( TAG, "Received unrecognized credential type ${credential.type}. " + "This shouldn't happen", ) } } else -> { Log.w( TAG, "Received unrecognized credential type ${credential.type}. This shouldn't happen", ) } }
Summary
Public methods |
|
|---|---|
static final @NonNull Credential |
@RequiresApi(value = 34)Parses the |
static final @NonNull Credential |
createFrom(@NonNull String type, @NonNull Bundle data)Parses the raw data into an instance of |
final @NonNull Bundle |
getData()the credential data in the |
final @NonNull String |
getType()the credential type determined by the credential-type-specific subclass (e.g. |
Public methods
createFrom
@RequiresApi(value = 34)
public static final @NonNull Credential createFrom(@NonNull Credential credential)
Parses the credential into an instance of Credential.
It is recommended to construct a Credential by directly instantiating a Credential subclass, instead of using this API. This API should only be used by a small subset of system apps that reconstruct an existing object for user interactions such as collecting consents.
| Parameters | |
|---|---|
@NonNull Credential credential |
the framework Credential object |
createFrom
public static final @NonNull Credential createFrom(@NonNull String type, @NonNull Bundle data)
Parses the raw data into an instance of Credential.
It is recommended to construct a Credential by directly instantiating a Credential subclass, instead of using this API. This API should only be used by a small subset of system apps that reconstruct an existing object for user interactions such as collecting consents.
| Parameters | |
|---|---|
@NonNull String type |
matches |
@NonNull Bundle data |
matches |
getData
public final @NonNull Bundle getData()
the credential data in the Bundle format
getType
public final @NonNull String getType()
the credential type determined by the credential-type-specific subclass (e.g. PasswordCredential.TYPE_PASSWORD_CREDENTIAL for PasswordCredential or PublicKeyCredential.TYPE_PUBLIC_KEY_CREDENTIAL for PublicKeyCredential)