1e41f4b71Sopenharmony_ci# Protecting Asset Data with User Authentication 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci> **NOTE** 4e41f4b71Sopenharmony_ci> 5e41f4b71Sopenharmony_ci> The asset data mentioned in this topic refers to sensitive data less than 1024 bytes in size, including passwords, app tokens, and other critical data (such as bank card numbers). 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci## When to Use 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ciAsset store service (ASSET) can be used in the scenario, in which users need to view their bank card numbers using a financial/banking application. To ensure security, you can store bank card numbers in an asset store and enforce a user identity authentication before the back card number is accessed. 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ciWhen a user wants to view the bank card number, the application requests an identity authentication (for example, the user needs to enter a lock screen password or pass certain biometric authentication). When the identity authentication is successful, the application obtains the bank card number from ASSET and presents it to the user. 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci## Development Process 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ciThe following figure illustrates the development process. 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci> **NOTE** 18e41f4b71Sopenharmony_ci> 19e41f4b71Sopenharmony_ci> UserIAM provides only ArkTS APIs. Therefore, only ArkTS APIs can be used. 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci1. The service queries an asset and determines whether the asset exists in the asset store based on the query result. 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci For details about the development procedure, see [Querying Assets](asset-js-query.md). For details about the sample code, see [Querying Attributes of an Asset](asset-js-query.md#querying-attributes-of-an-asset). 26e41f4b71Sopenharmony_ci2. If the asset does not exist, add an asset. For details, see [Adding an Asset](asset-js-add.md). 27e41f4b71Sopenharmony_ci 28e41f4b71Sopenharmony_ci3. If the asset exists, the service can perform any of the following operations based on service requirements: 29e41f4b71Sopenharmony_ci * Remove the asset. For details, see [Removing Assets](asset-js-remove.md). 30e41f4b71Sopenharmony_ci * Update the asset. For details, see [Updating an Asset](asset-js-update.md). 31e41f4b71Sopenharmony_ci * Query the plaintext of the asset. The query process involves preprocessing, user authentication, plaintext query, and postprocessing. For details, see [Querying an Asset with User Authentication](asset-js-query-auth.md). 32