• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 管理应用账号
2
3<!--Kit: Basic Services Kit-->
4<!--Subsystem: Account-->
5<!--Owner: @steven-q-->
6<!--Designer: @JiDong-CS1-->
7<!--Tester: @zhaimengchao-->
8<!--Adviser: @zengyawen-->
9
10应用开发者可以使用[应用账号SDK](../../reference/apis-basic-services-kit/js-apis-appAccount.md)管理本应用的账号数据。
11
12能力限制:应用卸载场景下,被卸载应用的账号数据会被删除;本地账号删除场景下,被删除本地账号下的所有应用的账号数据会被删除。
13
14## 开发准备
15
161. 导入应用账号模块。
17
18   ```ts
19   import { appAccount, BusinessError } from '@kit.BasicServicesKit';
20   ```
21
222. 获取应用账号的实例对象。
23
24   ```ts
25   const appAccountManager = appAccount.createAppAccountManager();
26   ```
27
28## 创建应用账号
29
30用户在应用中登录后,开发者可以在系统中创建一个关联的应用账号,后续可以基于此账号进行数据管理。
31
32具体开发实例如下:
33
341. 参数准备,指定账号名和可选配置。
35
36   ```ts
37   let name: string = "ZhangSan";
38   let options: appAccount.CreateAccountOptions = {
39     customData: {
40       age: '10'
41     }
42   };
43   ```
44
452. 调用[createAccount](../../reference/apis-basic-services-kit/js-apis-appAccount.md#createaccount9)接口,根据名称和选项创建应用账号。
46
47   ```ts
48   appAccountManager.createAccount(name, options).then(()=>{
49       console.info('createAccount successfully');
50   }).catch((err: BusinessError)=>{
51       console.error(`createAccount failed, error: code is ${err.code}, message is ${err.message}`);
52   });
53   ```
54
55## 查询应用账号列表
56
57具体开发实例如下:
58
59
60调用[getAllAccounts](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getallaccounts9)接口查询账号列表。
61
62   ```ts
63   appAccountManager.getAllAccounts().then((data: appAccount.AppAccountInfo[]) => {
64       console.info('getAllAccounts successfully, data: ' + JSON.stringify(data));
65   }).catch((err: BusinessError) => {
66       console.error(`getAllAccounts failed, code is ${err.code}, message is ${err.message}`);
67   });
68   ```
69
70## 存取账号的凭据
71
72具体开发实例如下:
73
741. 准备参数,指定账号名、凭据类型和凭据。
75
76   ```ts
77   let name: string = 'ZhangSan';
78   let credentialType: string = 'PIN_SIX';
79   let credential: string = 'xxxxxx';
80   ```
81
822. 调用[getCredential](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getcredential9)接口,获取账号的凭据。
83
84   ```ts
85   appAccountManager.getCredential(name, credentialType).then((data: string) => {
86       console.info('getCredential successfully, data: ' + data);
87   }).catch((err: BusinessError) => {
88       console.error(`getCredential failed, code is ${err.code}, message is ${err.message}`);
89   });
90   ```
91
923. 调用[setCredential](../../reference/apis-basic-services-kit/js-apis-appAccount.md#setcredential9)接口,设置账号的凭据。
93
94   ```ts
95   appAccountManager.setCredential(name, credentialType, credential).then(() => {
96       console.info('setCredential successfully');
97   }).catch((err: BusinessError) => {
98       console.error(`setCredential failed: code is ${err.code}, message is ${err.message}`);
99   });
100   ```
101
102## 存取账号的自定义数据
103
104具体开发实例如下:
105
1061. 准备参数,指定账号名和自定义键值。
107
108   ```ts
109   let name: string = 'ZhangSan';
110   let key: string = 'age';
111   let value: string = '12';
112   ```
113
1142. 调用[setCustomData](../../reference/apis-basic-services-kit/js-apis-appAccount.md#setcustomdata9)接口,设置账号的自定义数据。
115
116   ```ts
117   appAccountManager.setCustomData(name, key, value).then(() => {
118       console.info('setCustomData successfully');
119   }).catch((err: BusinessError) => {
120       console.error(`setCustomData failed: code is ${err.code}, message is ${err.message}`);
121   });
122   ```
123
1243. 调用[getCustomData](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getcustomdata9)接口,获取账号的自定义数据。
125
126   ```ts
127   appAccountManager.getCustomData(name, key).then((data: string) => {
128       console.info('getCustomData successfully, data: ' + data);
129   }).catch((err: BusinessError) => {
130       console.error(`getCustomData failed, code is ${err.code}, message is ${err.message}`);
131   });
132   ```
133
134## 存取账号的授权令牌
135
136具体开发实例如下:
137
1381. 准备参数,指定账号名、账号所有者、授权类型和授权令牌。
139
140   ```ts
141   let name: string = 'ZhangSan';
142   let owner: string = 'com.example.accountjsdemo';
143   let authType: string = 'getSocialData';
144   let token: string = 'xxxxxx';
145   ```
146
1472. 调用[setAuthToken](../../reference/apis-basic-services-kit/js-apis-appAccount.md#setauthtoken9)接口,设置指定授权类型的授权令牌。
148
149   ```ts
150   appAccountManager.setAuthToken(name, authType, token).then(() => {
151       console.info('setAuthToken successfully');
152   }).catch((err: BusinessError) => {
153       console.error(`setAuthToken failed: code is ${err.code}, message is ${err.message}`);
154   });
155   ```
156
1573. 调用[getAuthToken](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getauthtoken9)接口,获取指定授权类型的授权令牌。
158
159   ```ts
160   appAccountManager.getAuthToken(name, owner, authType).then((data: string) => {
161       console.info('getAuthToken successfully, data: ' + data);
162   }).catch((err: BusinessError) => {
163       console.error(`getAuthToken failed, code is ${err.code}, message is ${err.message}`);
164   });
165   ```
166
167## 删除应用账号
168
169用户退出登录后,应用需及时将相应的应用账号从系统中删除。
170
171具体开发实例如下:
172
173指定要删除的账号名称,调用[removeAccount](../../reference/apis-basic-services-kit/js-apis-appAccount.md#removeaccount9)接口删除账号。
174
175   ```ts
176   let name: string = 'ZhangSan';
177   appAccountManager.removeAccount(name).then(() => {
178       console.info('removeAccount successfully');
179   }).catch((err: BusinessError) => {
180       console.error(`removeAccount failed, code is ${err.code}, message is ${err.message}`);
181   });
182   ```
183
184<!--RP1-->
185<!--RP1End-->