1e41f4b71Sopenharmony_ci# Account Subsystem ChangeLog 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci## cl.account_os_account.1 Change in Error Information Return Method of Account System APIs 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ciCertain system APIs of the account subsystem use service logic return values to indicate error information, which does not comply with the API error code specifications of OpenHarmony. The following changes are made in API version 9 and later: 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ciAsynchronous API: An error message is returned via **AsyncCallback** or the **error** object of **Promise**. 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ciSynchronous API: An error message is returned via an exception. 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci**Change Impacts** 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ciThe application developed based on earlier versions needs to adapt the new APIs and their method for returning API error information. Otherwise, the original service logic will be affected. 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci**Key API/Component Changes** 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ciBefore change: 18e41f4b71Sopenharmony_ci - class UserAuth 19e41f4b71Sopenharmony_ci - setProperty(request: SetPropertyRequest, callback: AsyncCallback<number>): void; 20e41f4b71Sopenharmony_ci - setProperty(request: SetPropertyRequest): Promise<number>; 21e41f4b71Sopenharmony_ci - cancelAuth(contextID: Uint8Array): number; 22e41f4b71Sopenharmony_ci - class PINAuth 23e41f4b71Sopenharmony_ci - registerInputer(inputer: Inputer): boolean; 24e41f4b71Sopenharmony_ci - UserIdentityManager 25e41f4b71Sopenharmony_ci - cancel(challenge: Uint8Array): number; 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ciAfter change: 28e41f4b71Sopenharmony_ci - class UserAuth 29e41f4b71Sopenharmony_ci - setProperty(request: SetPropertyRequest, callback: AsyncCallback<void>): void; 30e41f4b71Sopenharmony_ci - setProperty(request: SetPropertyRequest): Promise<void>; 31e41f4b71Sopenharmony_ci - cancelAuth(contextID: Uint8Array): void; 32e41f4b71Sopenharmony_ci - class PINAuth 33e41f4b71Sopenharmony_ci - registerInputer(inputer: Inputer): void; 34e41f4b71Sopenharmony_ci - UserIdentityManager 35e41f4b71Sopenharmony_ci - cancel(challenge: Uint8Array): void; 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci**Adaptation Guide** 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ciThe following uses **setProperty** as an example for asynchronous APIs: 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci``` 42e41f4b71Sopenharmony_ciimport account_osAccount from "@ohos.account.osAccount" 43e41f4b71Sopenharmony_ciuserAuth.setProperty({ 44e41f4b71Sopenharmony_ci authType: account_osAccount.AuthType.PIN, 45e41f4b71Sopenharmony_ci key: account_osAccount.SetPropertyType.INIT_ALGORITHM, 46e41f4b71Sopenharmony_ci setInfo: new Uint8Array([0]) 47e41f4b71Sopenharmony_ci}, (err) => { 48e41f4b71Sopenharmony_ci if (err) { 49e41f4b71Sopenharmony_ci console.log("setProperty failed, error: " + JSON.stringify(err)); 50e41f4b71Sopenharmony_ci } else { 51e41f4b71Sopenharmony_ci console.log("setProperty successfully"); 52e41f4b71Sopenharmony_ci } 53e41f4b71Sopenharmony_ci}); 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ciuserAuth.setProperty({ 56e41f4b71Sopenharmony_ci authType: account_osAccount.AuthType.PIN, 57e41f4b71Sopenharmony_ci key: account_osAccount.SetPropertyType.INIT_ALGORITHM, 58e41f4b71Sopenharmony_ci setInfo: new Uint8Array([0]) 59e41f4b71Sopenharmony_ci}).catch((err) => { 60e41f4b71Sopenharmony_ci if (err) { 61e41f4b71Sopenharmony_ci console.log("setProperty failed, error: " + JSON.stringify(err)); 62e41f4b71Sopenharmony_ci } else { 63e41f4b71Sopenharmony_ci console.log("setProperty successfully"); 64e41f4b71Sopenharmony_ci } 65e41f4b71Sopenharmony_ci}); 66e41f4b71Sopenharmony_ci``` 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ciThe following uses **registerInputer** as an example for synchronous APIs: 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci``` 71e41f4b71Sopenharmony_ciimport account_osAccount from "@ohos.account.osAccount" 72e41f4b71Sopenharmony_cilet pinAuth = new account_osAccount.PINAuth() 73e41f4b71Sopenharmony_cilet inputer = { 74e41f4b71Sopenharmony_ci onGetData: (authType, passwordRecipient) => { 75e41f4b71Sopenharmony_ci let password = new Uint8Array([0]); 76e41f4b71Sopenharmony_ci passwordRecipient.onSetData(authType, password); 77e41f4b71Sopenharmony_ci } 78e41f4b71Sopenharmony_ci} 79e41f4b71Sopenharmony_citry { 80e41f4b71Sopenharmony_ci pinAuth.registerInputer(inputer); 81e41f4b71Sopenharmony_ci} catch (err) { 82e41f4b71Sopenharmony_ci console.log("registerInputer failed, error: " + JSON.stringify(err)); 83e41f4b71Sopenharmony_ci} 84e41f4b71Sopenharmony_ci``` 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci## cl.account_os_account.2 ACTION Definition Change for the Application Account Authentication Service 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci**Change Impacts** 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ciFor the application developed based on an earlier version, you need to modify **ACTION** in the application configuration file (**config.json** for the FA model and **module.json5** for the Stage model) to normally provide the application authentication service. 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci**Key API/Component Changes** 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ciInvolved constant: 95e41f4b71Sopenharmony_ci 96e41f4b71Sopenharmony_ci@ohos.ability.wantConstant.ACTION_APP_ACCOUNT_AUTH 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ciBefore change: 99e41f4b71Sopenharmony_ci 100e41f4b71Sopenharmony_ciACTION_APP_ACCOUNT_AUTH = "account.appAccount.action.auth" 101e41f4b71Sopenharmony_ci 102e41f4b71Sopenharmony_ciAfter change: 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ciACTION_APP_ACCOUNT_AUTH = "ohos.appAccount.action.auth" 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_ci**Adaptation Guide** 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_ciFor a third-party application providing the account authentication service, adapt the changed application account authentication **ACTION** in the **ServiceAbility** configuration file (**config.json** for the FA module or **module.json5** for the Stage module). 109e41f4b71Sopenharmony_ci``` 110e41f4b71Sopenharmony_ci"abilities": [ 111e41f4b71Sopenharmony_ci { 112e41f4b71Sopenharmony_ci "name": "ServiceAbility", 113e41f4b71Sopenharmony_ci "srcEntrance": "./ets/ServiceAbility/ServiceAbility.ts", 114e41f4b71Sopenharmony_ci ... 115e41f4b71Sopenharmony_ci "visible": true, 116e41f4b71Sopenharmony_ci "skills": { 117e41f4b71Sopenharmony_ci { 118e41f4b71Sopenharmony_ci "actions": [ 119e41f4b71Sopenharmony_ci "ohos.appAccount.action.auth" 120e41f4b71Sopenharmony_ci ] 121e41f4b71Sopenharmony_ci } 122e41f4b71Sopenharmony_ci } 123e41f4b71Sopenharmony_ci }] 124e41f4b71Sopenharmony_ci} 125