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-->