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