1# 管理应用账号 2 3应用开发者可以使用[应用账号SDK](../../reference/apis-basic-services-kit/js-apis-appAccount.md)管理本应用的账号数据。 4 5能力限制:应用卸载场景下,被卸载应用的账号数据会被删除;本地账号删除场景下,被删除本地账号下的所有应用的账号数据会被删除。 6 7## 开发准备 8 91. 导入应用账号模块。 10 11 ```ts 12 import { appAccount, BusinessError } from '@kit.BasicServicesKit'; 13 ``` 14 152. 获取应用账号的实例对象。 16 17 ```ts 18 const appAccountManager = appAccount.createAppAccountManager(); 19 ``` 20 21## 创建应用账号 22 23用户在应用中登录后,开发者可以在系统中创建一个关联的应用账号,后续可以基于此账号进行数据管理。 24 25具体开发实例如下: 26 271. 参数准备,指定账号名和可选配置。 28 29 ```ts 30 let name: string = "ZhangSan"; 31 let options: 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) { 45 console.log('createAccount failed, error: ' + JSON.stringify(err)); 46 } 47 ``` 48 49## 查询应用账号列表 50 51具体开发实例如下: 52 53 54调用[getAllAccounts](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getallaccounts9)接口查询账号列表。 55 56 ```ts 57 appAccountManager.getAllAccounts().then((data: appAccount.AppAccountInfo[]) => { 58 console.debug('getAllAccounts successfully, data: ' + JSON.stringify(data)); 59 }).catch((err: BusinessError) => { 60 console.debug('getAllAccounts failed, error: ' + JSON.stringify(err)); 61 }); 62 ``` 63 64## 存取账号的凭据 65 66具体开发实例如下: 67 681. 准备参数,指定账号名、凭据类型和凭据。 69 70 ```ts 71 let name: string = 'ZhangSan'; 72 let credentialType: string = 'PIN_SIX'; 73 let credential: string = 'xxxxxx'; 74 ``` 75 762. 调用[getCredential](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getcredential9)接口,获取账号的凭据。 77 78 ```ts 79 appAccountManager.getCredential(name, credentialType).then((data: string) => { 80 console.log('getCredential successfully, data: ' + data); 81 }).catch((err: BusinessError) => { 82 console.log('getCredential failed, error: ' + JSON.stringify(err)); 83 }); 84 ``` 85 863. 调用[setCredential](../../reference/apis-basic-services-kit/js-apis-appAccount.md#setcredential9)接口,设置账号的凭据。 87 88 ```ts 89 appAccountManager.setCredential(name, credentialType, credential).then(() => { 90 console.log('setCredential successfully'); 91 }).catch((err: BusinessError) => { 92 console.log('setCredential failed: ' + JSON.stringify(err)); 93 }); 94 ``` 95 96## 存取账号的自定义数据 97 98具体开发实例如下: 99 1001. 准备参数,指定账号名和自定义键值。 101 102 ```ts 103 let name: string = 'ZhangSan'; 104 let key: string = 'age'; 105 let value: string = '12'; 106 ``` 107 1082. 调用[setCustomData](../../reference/apis-basic-services-kit/js-apis-appAccount.md#setcustomdata9)接口,设置账号的自定义数据。 109 110 ```ts 111 appAccountManager.setCustomData(name, key, value).then(() => { 112 console.log('setCustomData successfully'); 113 }).catch((err: BusinessError) => { 114 console.log('setCustomData failed: ' + JSON.stringify(err)); 115 }); 116 ``` 117 1183. 调用[getCustomData](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getcustomdata9)接口,获取账号的自定义数据。 119 120 ```ts 121 appAccountManager.getCustomData(name, key).then((data: string) => { 122 console.log('getCustomData successfully, data: ' + data); 123 }).catch((err: BusinessError) => { 124 console.log('getCustomData failed, error: ' + JSON.stringify(err)); 125 }); 126 ``` 127 128## 存取账号的授权令牌 129 130具体开发实例如下: 131 1321. 准备参数,指定账号名、账号所有者、授权类型和授权令牌。 133 134 ```ts 135 let name: string = 'ZhangSan'; 136 let owner: string = 'com.example.accountjsdemo'; 137 let authType: string = 'getSocialData'; 138 let token: string = 'xxxxxx'; 139 ``` 140 1412. 调用[setAuthToken](../../reference/apis-basic-services-kit/js-apis-appAccount.md#setauthtoken9)接口,设置指定授权类型的授权令牌。 142 143 ```ts 144 appAccountManager.setAuthToken(name, authType, token).then(() => { 145 console.log('setAuthToken successfully'); 146 }).catch((err: BusinessError) => { 147 console.log('setAuthToken failed: ' + JSON.stringify(err)); 148 }); 149 ``` 150 1513. 调用[getAuthToken](../../reference/apis-basic-services-kit/js-apis-appAccount.md#getauthtoken9)接口,获取指定授权类型的授权令牌。 152 153 ```ts 154 appAccountManager.getAuthToken(name, owner, authType).then((data: string) => { 155 console.log('getAuthToken successfully, data: ' + data); 156 }).catch((err: BusinessError) => { 157 console.log('getAuthToken failed, error: ' + JSON.stringify(err)); 158 }); 159 ``` 160 161## 删除应用账号 162 163用户退出登录后,应用需及时将相应的应用账号从系统中删除。 164 165具体开发实例如下: 166 167指定要删除的账号名称,调用[removeAccount](../../reference/apis-basic-services-kit/js-apis-appAccount.md#removeaccount9)接口删除账号。 168 169 ```ts 170 let name: string = 'Zhangsan'; 171 appAccountManager.removeAccount(name).then(() => { 172 console.log('removeAccount successfully'); 173 }).catch((err: BusinessError) => { 174 console.log('removeAccount failed, error: ' + JSON.stringify(err)); 175 }); 176 ``` 177 178<!--RP1--> 179<!--RP1End-->