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.
Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format:
oauthClients/{oauth_client_id}
You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see
the documentation
for more information.
Request body
The request body contains data with the following structure:
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
If successful, the response body contains an instance of
AppCheckToken
.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-04-05 UTC."],[],[],null,["# Method: projects.apps.exchangeAppAttestAssertion\n\nAccepts an App Attest assertion and an artifact previously obtained from\n`\n`[apps.exchangeAppAttestAttestation](/docs/reference/appcheck/rest/v1beta/projects.apps/exchangeAppAttestAttestation#google.firebase.appcheck.v1beta.TokenExchangeService.ExchangeAppAttestAttestation)`\n`\nand verifies those with Apple. If valid, returns an\n`\n`[AppCheckToken](/docs/reference/appcheck/rest/v1beta/AppCheckToken)`\n`\n.\n\n### HTTP request\n\n\n`\nPOST https://firebaseappcheck.googleapis.com/v1beta/{app=projects/*/apps/*}:exchangeAppAttestAssertion\n`\n\n\nThe URL uses\n[gRPC Transcoding](https://google.aip.dev/127)\nsyntax.\n\n### Path parameters\n\n| Parameters ||\n|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ` 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](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: oauthClients/{oauth_client_id} You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information. |\n\n### Request body\n\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|-------------------------------------------------------------------------------------------------|\n| ``` { \"artifact\": string, \"assertion\": string, \"challenge\": string, \"limitedUse\": boolean } ``` |\n\n| Fields ||\n|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ` artifact ` | ` string ( `[bytes](https://developers.google.com/discovery/v1/type-format)` format) ` Required. The artifact returned by a previous call to ` `[apps.exchangeAppAttestAttestation](/docs/reference/appcheck/rest/v1beta/projects.apps/exchangeAppAttestAttestation#google.firebase.appcheck.v1beta.TokenExchangeService.ExchangeAppAttestAttestation)` ` . A base64-encoded string. |\n| ` assertion ` | ` string ( `[bytes](https://developers.google.com/discovery/v1/type-format)` format) ` Required. The CBOR-encoded assertion returned by the client-side App Attest API. A base64-encoded string. |\n| ` challenge ` | ` string ( `[bytes](https://developers.google.com/discovery/v1/type-format)` format) ` Required. A one-time challenge returned by an immediately prior call to ` `[apps.generateAppAttestChallenge](/docs/reference/appcheck/rest/v1beta/projects.apps/generateAppAttestChallenge#google.firebase.appcheck.v1beta.TokenExchangeService.GenerateAppAttestChallenge)` ` . A base64-encoded string. |\n| ` 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 ` . |\n\n### Response body\n\n\nIf successful, the response body contains an instance of\n`\n`[AppCheckToken](/docs/reference/appcheck/rest/v1beta/AppCheckToken)`\n`\n."]]