Method: projects.apps.exchangeAppAttestAttestation

Accepts an App Attest CBOR attestation and verifies it with Apple using your preconfigured team and bundle IDs. If valid, returns an attestation artifact that can later be exchanged for an AppCheckToken using apps.exchangeAppAttestAssertion .

For convenience and performance, this method's response object will also contain an AppCheckToken (if the verification is successful).

HTTP request

POST https://firebaseappcheck.googleapis.com/v1/{app=projects/*/apps/*}:exchangeAppAttestAttestation

The URL uses gRPC Transcoding syntax.

Path parameters

Parameters
app

string

Required. The relative resource name of the iOS app, in the format:

projects/{project_number}/apps/{app_id}

If necessary, the project_number element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's AIP 2510 standard.

Request body

The request body contains data with the following structure:

JSON representation
{
  "attestationStatement": string,
  "challenge": string,
  "keyId": string,
  "limitedUse": boolean
}
Fields
attestationStatement

string ( bytes format)

Required. The App Attest statement returned by the client-side App Attest API. This is a base64url encoded CBOR object in the JSON response.

A base64-encoded string.

challenge

string ( bytes format)

Required. A one-time challenge returned by an immediately prior call to apps.generateAppAttestChallenge .

A base64-encoded string.

keyId

string ( bytes format)

Required. The key ID generated by App Attest for the client app.

A base64-encoded string.

limitedUse

boolean

Specifies whether this attestation is for use in a limited use ( true ) or session based ( false ) context. To enable this attestation to be used with the replay protection feature, set this to true . The default value is false .

Response body

Response message for the apps.exchangeAppAttestAttestation method.

If successful, the response body contains data with the following structure:

JSON representation
{
  "artifact": string,
  "appCheckToken": {
    object (AppCheckToken)
  }
}
Fields
artifact

string ( bytes format)

An artifact that can be used in future calls to apps.exchangeAppAttestAssertion .

A base64-encoded string.

appCheckToken

object ( AppCheckToken )

Encapsulates an App Check token.