1# 帐号子系统ChangeLog
2
3## cl.account_os_account.1 帐号SystemAPI错误信息返回方式变更
4
5已发布的部分帐号SystemAPI使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。从API9开始作以下变更:
6
7异步接口:通过AsyncCallback或Promise的error对象返回错误信息。
8
9同步接口:通过抛出异常的方式返回错误信息。
10
11**变更影响**
12
13基于此前版本开发的应用,需适配变更接口的错误信息返回方式,否则会影响原有业务逻辑。
14
15**关键接口/组件变更**
16
17变更前:
18  - class UserAuth
19    - setProperty(request: SetPropertyRequest, callback: AsyncCallback<number>): void;
20    - setProperty(request: SetPropertyRequest): Promise<number>;
21    - cancelAuth(contextID: Uint8Array): number;
22  - class PINAuth
23    - registerInputer(inputer: Inputer): boolean;
24  - UserIdentityManager
25    - cancel(challenge: Uint8Array): number;
26
27变更后:
28  - class UserAuth
29    - setProperty(request: SetPropertyRequest, callback: AsyncCallback<void>): void;
30    - setProperty(request: SetPropertyRequest): Promise<void>;
31    - cancelAuth(contextID: Uint8Array): void;
32  - class PINAuth
33    - registerInputer(inputer: Inputer): void;
34  - UserIdentityManager
35    - cancel(challenge: Uint8Array): void;
36
37**适配指导**
38
39异步接口以setProperty为例,示例代码如下:
40
41```
42import account_osAccount from "@ohos.account.osAccount"
43userAuth.setProperty({
44    authType: account_osAccount.AuthType.PIN,
45    key: account_osAccount.SetPropertyType.INIT_ALGORITHM,
46    setInfo: new Uint8Array([0])
47}, (err) => {
48    if (err) {
49        console.log("setProperty failed, error: " + JSON.stringify(err));
50    } else {
51        console.log("setProperty successfully");
52    }
53});
54
55userAuth.setProperty({
56    authType: account_osAccount.AuthType.PIN,
57    key: account_osAccount.SetPropertyType.INIT_ALGORITHM,
58    setInfo: new Uint8Array([0])
59}).catch((err) => {
60    if (err) {
61        console.log("setProperty failed, error: " + JSON.stringify(err));
62    } else {
63        console.log("setProperty successfully");
64    }
65});
66```
67
68同步接口以registerInputer为例,示例代码如下:
69
70```
71import account_osAccount from "@ohos.account.osAccount"
72let pinAuth = new account_osAccount.PINAuth()
73let inputer = {
74    onGetData: (authType, passwordRecipient) => {
75        let password = new Uint8Array([0]);
76        passwordRecipient.onSetData(authType, password);
77    }
78}
79try {
80    pinAuth.registerInputer(inputer);
81} catch (err) {
82    console.log("registerInputer failed, error: " + JSON.stringify(err));
83}
84```
85
86## cl.account_os_account.2 应用帐号鉴权服务ACTION定义变更
87
88**变更影响**
89
90基于此前版本开发的应用,需适配修改应用配置文件(FA模型为config.json或Stage模型为module.json5)中的ACTION才能正常对外提供应用鉴权服务。
91
92**关键接口/组件变更**
93
94涉及的常量:
95
96@ohos.ability.wantConstant.ACTION_APP_ACCOUNT_AUTH
97
98变更前:
99
100ACTION_APP_ACCOUNT_AUTH = "account.appAccount.action.auth"
101
102变更后:
103
104ACTION_APP_ACCOUNT_AUTH = "ohos.appAccount.action.auth"
105
106**适配指导**
107
108提供应用帐号鉴权服务的三方应用,需要在相关ServiceAbility的配置文件(FA模型为config.json或Stage模型为module.json5)中适配变更后的应用帐号认证ACTION,示例如下:
109```
110"abilities": [
111    {
112        "name": "ServiceAbility",
113        "srcEntrance": "./ets/ServiceAbility/ServiceAbility.ts",
114        ...
115        "visible": true,
116        "skills": {
117            {
118                "actions": [
119                    "ohos.appAccount.action.auth"
120                ]
121            }
122        }
123    }]
124}
125