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