• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 管理应用帐号
2
3应用开发者可以使用[应用帐号SDK](../../reference/apis-basic-services-kit/js-apis-appAccount.md)管理本应用的帐号数据。
4
5能力限制:应用卸载场景下,被卸载应用的帐号数据会被删除;本地帐号删除场景下,被删除本地帐号下的所有应用的帐号数据会被删除。
6
7## 开发准备
8
91. 导入应用帐号模块。
10
11   ```ts
12   import account_appAccount from '@ohos.account.appAccount';
13   ```
14
152. 获取应用帐号的实例对象。
16
17   ```ts
18   const appAccountManager = account_appAccount.createAppAccountManager();
19   ```
20
21## 创建应用帐号
22
23用户在应用中登录后,开发者可以在系统中创建一个关联的应用帐号,后续可以基于此帐号进行数据管理。
24
25具体开发实例如下:
26
271. 参数准备,指定帐号名和可选配置。
28
29   ```ts
30   let name: string = "ZhangSan";
31   let options: account_appAccount.CreateAccountOptions = {
32     customData: {
33       age: '10'
34     }
35   };
36   ```
37
382. 调用[createAccount](../../reference/apis-basic-services-kit/js-apis-appAccount.md#createaccount9)接口,根据名称和选项创建应用帐号。
39
40   ```ts
41   try {
42     await appAccountManager.createAccount(name, options);
43     console.log('createAccount successfully');
44   } catch (err: BusinessError) {
45     console.log('createAccount failed, error: ' + JSON.stringify(err));
46   }
47   ```
48
49## 查询应用帐号列表
50
51具体开发实例如下:
52
531. 准备参数,指定帐号所有者。
54
55   ```ts
56   let owner: string = 'com.example.accountjsdemo2';
57   ```
58
592. 调用[getAllAccounts](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getallaccounts9)接口查询帐号列表。
60
61   ```ts
62   appAccountManager.getAllAccounts().then((data: account_appAccount.AppAccountInfo[]) => {
63       console.debug('getAllAccounts successfully, data: ' + JSON.stringify(data));
64   }).catch((err: BusinessError) => {
65       console.debug('getAllAccounts failed, error: ' + JSON.stringify(err));
66   });
67   ```
68
69## 存取帐号的凭据
70
71具体开发实例如下:
72
731. 准备参数,指定帐号名、凭据类型和凭据。
74
75   ```ts
76   let name: string = 'ZhangSan';
77   let credentialType: string = 'PIN_SIX';
78   let credential: string = 'xxxxxx';
79   ```
80
812. 调用[getCredential](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getcredential9)接口,获取帐号的凭据。
82
83   ```ts
84   appAccountManager.getCredential(name, credentialType).then((data: string) => {
85       console.log('getCredential successfully, data: ' + data);
86   }).catch((err: BusinessError) => {
87       console.log('getCredential failed, error: ' + JSON.stringify(err));
88   });
89   ```
90
913. 调用[setCredential](../../reference/apis-basic-services-kit/js-apis-appAccount.md#setcredential9)接口,设置帐号的凭据。
92
93   ```ts
94   appAccountManager.setCredential(name, credentialType, credential).then(() => {
95       console.log('setCredential successfully');
96   }).catch((err: BusinessError) => {
97       console.log('setCredential failed: ' + JSON.stringify(err));
98   });
99   ```
100
101## 存取帐号的自定义数据
102
103具体开发实例如下:
104
1051. 准备参数,指定帐号名和自定义键值。
106
107   ```ts
108   let name: string = 'ZhangSan';
109   let key: string = 'age';
110   let value: string = '12';
111   ```
112
1132. 调用[setCustomData](../../reference/apis-basic-services-kit/js-apis-appAccount.md#setcustomdata9)接口,设置帐号的自定义数据。
114
115   ```ts
116   appAccountManager.setCustomData(name, key, value).then(() => {
117       console.log('setCustomData successfully');
118   }).catch((err: BusinessError) => {
119       console.log('setCustomData failed: ' + JSON.stringify(err));
120   });
121   ```
122
1233. 调用[getCustomData](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getcustomdata9)接口,获取帐号的自定义数据。
124
125   ```ts
126   appAccountManager.getCustomData(name, key).then((data: string) => {
127       console.log('getCustomData successfully, data: ' + data);
128   }).catch((err: BusinessError) => {
129       console.log('getCustomData failed, error: ' + JSON.stringify(err));
130   });
131   ```
132
133## 存取帐号的授权令牌
134
135具体开发实例如下:
136
1371. 准备参数,指定帐号名、帐号所有者、授权类型和授权令牌。
138
139   ```ts
140   let name: string = 'ZhangSan';
141   let owner: string = 'com.example.accountjsdemo';
142   let authType: string = 'getSocialData';
143   let token: string = 'xxxxxx';
144   ```
145
1462. 调用[setAuthToken](../../reference/apis-basic-services-kit/js-apis-appAccount.md#setauthtoken9)接口,设置指定授权类型的授权令牌。
147
148   ```ts
149   appAccountManager.setAuthToken(name, authType, token).then(() => {
150       console.log('setAuthToken successfully');
151   }).catch((err: BusinessError) => {
152       console.log('setAuthToken failed: ' + JSON.stringify(err));
153   });
154   ```
155
1563. 调用[getAuthToken](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getauthtoken9)接口,获取指定授权类型的授权令牌。
157
158   ```ts
159   appAccountManager.getAuthToken(name, owner, authType).then((data: string) => {
160       console.log('getAuthToken successfully, data: ' + data);
161   }).catch((err: BusinessError) => {
162       console.log('getAuthToken failed, error: ' + JSON.stringify(err));
163   });
164   ```
165
166## 删除应用帐号
167
168用户退出登录后,应用需及时将相应的应用帐号从系统中删除。
169
170具体开发实例如下:
171
1721. 指定要删除的帐号名称,调用[removeAccount](../../reference/apis-basic-services-kit/js-apis-appAccount.md#removeaccount9)接口删除帐号。
173
174   ```ts
175   let name: string = 'Zhangsan';
176   appAccountManager.removeAccount(name).then(() => {
177       console.log('removeAccount successfully');
178   }).catch((err: BusinessError) => {
179       console.log('removeAccount failed, error: ' + JSON.stringify(err));
180   });
181   ```
182