# App Account Management
> **NOTE**
> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## Modules to Import
```js
import account_appAccount from '@ohos.account.appAccount';
```
## account_appAccount.createAppAccountManager
createAppAccountManager(): AppAccountManager
Creates an **AppAccountManager** instance.
**System capability**: SystemCapability.Account.AppAccount
**Return Value**
| Type | Description |
| ----------------- | ------------ |
| AppAccountManager | **AppAccountManager** instance created. |
**Example**
```js
var appAccountManager = account.createAppAccountManager();
```
## AppAccountManager
Provides methods to manage app accounts.
### addAccount
addAccount(name: string, callback: AsyncCallback<void>): void
Adds an app account to the account management service. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ------------------------- | ---- | --------------------- |
| name | string | Yes | Name of the app account to add. |
| callback | AsyncCallback<void> | Yes | Callback invoked when the app account is added. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.addAccount("WangWu", (err) => {
console.log("addAccount err: " + JSON.stringify(err));
});
```
### addAccount
addAccount(name: string, extraInfo: string, callback: AsyncCallback<void>): void
Adds an app account and its additional information to the account management service. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| --------- | ------------------------- | ---- | ---------------------------------------- |
| name | string | Yes | Name of the app account to add. |
| extraInfo | string | Yes | Additional information (for example, token) of the app account to add. The additional information cannot contain sensitive information about the app account. |
| callback | AsyncCallback<void> | Yes | Callback invoked when the app account and its additional information are added. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.addAccount("LiSi", "token101", (err) => {
console.log("addAccount err: " + JSON.stringify(err));
});
```
### addAccount
addAccount(name: string, extraInfo?: string): Promise<void>
Adds an app account and its additional information to the account management service. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| --------- | ------ | ---- | -------------------------------- |
| name | string | Yes | Name of the app account to add. |
| extraInfo | string | Yes | Additional information of the app account to add. The additional information cannot contain sensitive information about the app account. |
**Return Value**
| Type | Description |
| ------------------- | --------------------- |
| Promise<void> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.addAccount("LiSi", "token101").then(()=> {
console.log('addAccount Success');
}).catch((err) => {
console.log("addAccount err: " + JSON.stringify(err));
});
```
### addAccountImplicitly8+
addAccountImplicitly(owner: string, authType: string, options: {[key: string]: any}, callback: AuthenticatorCallback): void
Implicitly adds an app account based on the specified account owner, authentication type, and options. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | --------------------- | ---- | --------------- |
| owner | string | Yes | Bundle name of the app account to add. |
| authType | string | Yes | Authentication type of the app account to add. |
| options | {[key: string]: any} | Yes | Options for the authentication. |
| callback | AuthenticatorCallback | Yes | Authenticator callback invoked to return the authentication result. |
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility';
function onResultCallback(code, result) {
console.log("resultCode: " + code);
console.log("result: " + JSON.stringify(result));
}
function onRequestRedirectedCallback(request) {
let abilityStartSetting = {want: request};
featureAbility.startAbility(abilityStartSetting, (err)=>{
console.log("startAbility err: " + JSON.stringify(err));
});
}
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.addAccountImplicitly("LiSi", "readAge", {}, {
onResult: onResultCallback,
onRequestRedirected: onRequestRedirectedCallback
});
```
### deleteAccount
deleteAccount(name: string, callback: AsyncCallback<void>): void
Deletes an app account from the account management service. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ------------------------- | ---- | ----------------- |
| name | string | Yes | Name of the app account to delete. |
| callback | AsyncCallback<void> | Yes | Callback invoked when the app account is deleted. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.deleteAccount("ZhaoLiu", (err) => {
console.log("deleteAccount err: " + JSON.stringify(err));
});
```
### deleteAccount
deleteAccount(name: string): Promise<void>
Deletes an app account from the account management service. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---- | ------ | ---- | ------------ |
| name | string | Yes | Name of the app account to delete. |
**Return Value**
| Type | Description |
| :------------------ | :-------------------- |
| Promise<void> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.deleteAccount("ZhaoLiu").then(() => {
console.log('deleteAccount Success');
}).catch((err) => {
console.log("deleteAccount err: " + JSON.stringify(err));
});
```
### disableAppAccess
disableAppAccess(name: string, bundleName: string, callback: AsyncCallback<void>): void
Disables an app account from accessing an application with the given bundle name. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---------- | ------------------------- | ---- | ------------------------------- |
| name | string | Yes | App account name. |
| bundleName | string | Yes | Bundle name of an app. |
| callback | AsyncCallback<void> | Yes | Callback invoked when the app account is disabled from accessing the application with the given bundle name. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.disableAppAccess("ZhangSan", "com.example.ohos.accountjsdemo", (err) => {
console.log("disableAppAccess err: " + JSON.stringify(err));
});
```
### disableAppAccess
disableAppAccess(name: string, bundleName: string): Promise<void>
Disables an app account from accessing an application with the given bundle name. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---------- | ------ | ---- | ----------------- |
| name | string | Yes | App account name. |
| bundleName | string | Yes | Bundle name of an app. |
**Return Value**
| Type | Description |
| :------------------ | :-------------------- |
| Promise<void> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.disableAppAccess("ZhangSan", "com.example.ohos.accountjsdemo").then(() => {
console.log('disableAppAccess Success');
}).catch((err) => {
console.log("disableAppAccess err: " + JSON.stringify(err));
});
```
### enableAppAccess
enableAppAccess(name: string, bundleName: string, callback: AsyncCallback<void>): void
Enables an app account to access an application with the given bundle name. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---------- | ------------------------- | ---- | ------------------------------- |
| name | string | Yes | App account name. |
| bundleName | string | Yes | Bundle name of an app. |
| callback | AsyncCallback<void> | Yes | Callback invoked when the app account is enabled to access the application with the given bundle name. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.enableAppAccess("ZhangSan", "com.example.ohos.accountjsdemo", (err) => {
console.log("enableAppAccess: " + JSON.stringify(err));
});
```
### enableAppAccess
enableAppAccess(name: string, bundleName: string): Promise<void>
Enables an app account to access an application with the given bundle name. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---------- | ------ | ---- | --------- |
| name | string | Yes | App account name. |
| bundleName | string | Yes | Bundle name of an app. |
**Return Value**
| Type | Description |
| :------------------ | :-------------------- |
| Promise<void> | Promise used to return the result. |
**Example**
```js
app_account_instance.enableAppAccess("ZhangSan", "com.example.ohos.accountjsdemo").then(() => {
console.log('enableAppAccess Success');
}).catch((err) => {
console.log("enableAppAccess err: " + JSON.stringify(err));
});
```
### checkAppAccountSyncEnable
checkAppAccountSyncEnable(name: string, callback: AsyncCallback<boolean>): void
Checks whether an app account allows application data synchronization. This method uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC (available only to system applications)
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ---------------------------- | ---- | ---------------------- |
| name | string | Yes | App account name. |
| callback | AsyncCallback<boolean> | Yes | Callback used to return whether the app account allows application data synchronization. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.checkAppAccountSyncEnable("ZhangSan", (err, result) => {
console.log("checkAppAccountSyncEnable err: " + JSON.stringify(err));
console.log('checkAppAccountSyncEnable result: ' + result);
});
```
### checkAppAccountSyncEnable
checkAppAccountSyncEnable(name: string): Promise<boolean>
Checks whether an app account allows application data synchronization. This method uses a promise to return the result.
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC (available only to system applications)
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---- | ------ | ---- | ------- |
| name | string | Yes | App account name. |
**Return Value**
| Type | Description |
| :--------------------- | :-------------------- |
| Promise<boolean> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.checkAppAccountSyncEnable("ZhangSan").then((data) => {
console.log('checkAppAccountSyncEnable, result: ' + data);
}).catch((err) => {
console.log("checkAppAccountSyncEnable err: " + JSON.stringify(err));
});
```
### setAccountCredential
setAccountCredential(name: string, credentialType: string, credential: string, callback: AsyncCallback<void>): void
Sets a credential for an app account. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------------- | ------------------------- | ---- | -------------- |
| name | string | Yes | App account name. |
| credentialType | string | Yes | Type of the credential to set. |
| credential | string | Yes | Credential to set. |
| callback | AsyncCallback<void> | Yes | Callback invoked when a credential is set for the specified app account. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.setAccountCredential("ZhangSan", "credentialType001", "credential001", (err) => {
console.log("setAccountCredential err: " + JSON.stringify(err));
});
```
### setAccountCredential
setAccountCredential(name: string, credentialType: string, credential: string): Promise<void>
Sets a credential for an app account. This method uses a promise to return the result asynchronously.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------------- | ------ | ---- | ---------- |
| name | string | Yes | App account name. |
| credentialType | string | Yes | Type of the credential to set. |
| credential | string | Yes | Credential to set. |
**Return Value**
| Type | Description |
| :------------------ | :-------------------- |
| Promise<void> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.setAccountCredential("ZhangSan", "credentialType001", "credential001").then(() => {
console.log('setAccountCredential Success');
}).catch((err) => {
console.log("setAccountCredential err: " + JSON.stringify(err));
});
```
### setAccountExtraInfo
setAccountExtraInfo(name: string, extraInfo: string, callback: AsyncCallback<void>): void
Sets additional information for an app account. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| --------- | ------------------------- | ---- | ---------------- |
| name | string | Yes | App account name. |
| extraInfo | string | Yes | Additional information to set. |
| callback | AsyncCallback<void> | Yes | Callback invoked when additional information is set for the specified app account. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.setAccountExtraInfo("ZhangSan", "Tk002", (err) => {
console.log("setAccountExtraInfo err: " + JSON.stringify(err));
});
```
### setAccountExtraInfo
setAccountExtraInfo(name: string, extraInfo: string): Promise<void>
Sets additional information for an app account. This method uses a promise to return the result asynchronously.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| --------- | ------ | ---- | --------- |
| name | string | Yes | App account name. |
| extraInfo | string | Yes | Additional information to set. |
**Return Value**
| Type | Description |
| :------------------ | :-------------------- |
| Promise<void> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.setAccountExtraInfo("ZhangSan", "Tk002").then(() => {
console.log('setAccountExtraInfo Success');
}).catch((err) => {
console.log("setAccountExtraInfo err: " + JSON.stringify(err));
});
```
### setAppAccountSyncEnable
setAppAccountSyncEnable(name: string, isEnable: boolean, callback: AsyncCallback<void>): void
Sets whether to enable application data synchronization for an app account. This method uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC (available only to system applications)
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ------------------------- | ---- | ------------------------- |
| name | string | Yes | App account name. |
| isEnable | boolean | Yes | Whether to enable app data synchronization. |
| callback | AsyncCallback<void> | Yes | Callback invoked when application data synchronization is enabled or disabled for the app account. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.setAppAccountSyncEnable("ZhangSan", true, (err) => {
console.log("setAppAccountSyncEnable err: " + JSON.stringify(err));
});
```
### setAppAccountSyncEnable
setAppAccountSyncEnable(name: string, isEnable: boolean): Promise<void>
Sets whether to enable application data synchronization for an app account. This method uses a promise to return the result asynchronously.
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC (available only to system applications)
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ------- | ---- | ----------- |
| name | string | Yes | App account name. |
| isEnable | boolean | Yes | Whether to enable app data synchronization. |
**Return Value**
| Type | Description |
| :------------------ | :-------------------- |
| Promise<void> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager .setAppAccountSyncEnable("ZhangSan", true).then(() => {
console.log('setAppAccountSyncEnable Success');
}).catch((err) => {
console.log("setAppAccountSyncEnable err: " + JSON.stringify(err));
});
```
### setAssociatedData
setAssociatedData(name: string, key: string, value: string, callback: AsyncCallback<void>): void
Sets data to be associated with an app account. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ------------------------- | ---- | ----------------- |
| name | string | Yes | App account name. |
| key | string | Yes | Key of the data to set. The private key can be customized. |
| value | string | Yes | Value of the data to be set. |
| callback | AsyncCallback<void> | Yes | Callback invoked when the data associated with the specified app account is set. |
**Example**
```js
app_account_instance.setAssociatedData("ZhangSan", "k001", "v001", (err) => {
console.log("setAssociatedData err: " + JSON.stringify(err));
});
```
### setAssociatedData
setAssociatedData(name: string, key: string, value: string): Promise<void>
Sets data to be associated with an app account. This method uses a promise to return the result asynchronously.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ----- | ------ | ---- | ----------------- |
| name | string | Yes | App account name. |
| key | string | Yes | Key of the data to set. The private key can be customized. |
| value | string | Yes | Value of the data to be set. |
**Return Value**
| Type | Description |
| :------------------ | :-------------------- |
| Promise<void> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.setAssociatedData("ZhangSan", "k001", "v001").then(() => {
console.log('setAssociatedData Success');
}).catch((err) => {
console.log("setAssociatedData err: " + JSON.stringify(err));
});
```
### getAccountCredential
getAccountCredential(name: string, credentialType: string, callback: AsyncCallback<string>): void
Obtains the credential of an app account. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------------- | --------------------------- | ---- | -------------- |
| name | string | Yes | App account name. |
| credentialType | string | Yes | Type of the credential to obtain. |
| callback | AsyncCallback<string> | Yes | Callback invoked to return the credential of the specified app account. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAccountCredential("ZhangSan", "credentialType001", (err, result) => {
console.log("getAccountCredential err: " + JSON.stringify(err));
console.log('getAccountCredential result: ' + result);
});
```
### getAccountCredential
getAccountCredential(name: string, credentialType: string): Promise<string>
Obtains the credential of an app account. This method uses a promise to return the result asynchronously.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------------- | ------ | ---- | ---------- |
| name | string | Yes | App account name. |
| credentialType | string | Yes | Type of the credential to obtain. |
**Return Value**
| Type | Description |
| :-------------------- | :-------------------- |
| Promise<string> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAccountCredential("ZhangSan", "credentialType001").then((data) => {
console.log('getAccountCredential, result: ' + data);
}).catch((err) => {
console.log("getAccountCredential err: " + JSON.stringify(err));
});
```
### getAccountExtraInfo
getAccountExtraInfo(name: string, callback: AsyncCallback<string>): void
Obtains additional information of an app account. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | --------------------------- | ---- | ---------------- |
| name | string | Yes | App account name. |
| callback | AsyncCallback<string> | Yes | Callback invoked to return the additional information of the specified app account. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAccountExtraInfo("ZhangSan", (err, result) => {
console.log("getAccountExtraInfo err: " + JSON.stringify(err));
console.log('getAccountExtraInfo result: ' + result);
});
```
### getAccountExtraInfo
getAccountExtraInfo(name: string): Promise<string>
Obtains additional information of an app account. This method uses a promise to return the result asynchronously.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---- | ------ | ---- | ------- |
| name | string | Yes | App account name. |
**Return Value**
| Type | Description |
| :-------------------- | :-------------------- |
| Promise<string> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAccountExtraInfo("ZhangSan").then((data) => {
console.log('getAccountExtraInfo, result: ' + data);
}).catch((err) => {
console.log("getAccountExtraInfo err: " + JSON.stringify(err));
});
```
### getAssociatedData
getAssociatedData(name: string, key: string, callback: AsyncCallback<string>): void
Obtains data associated with an app account. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | --------------------------- | ---- | ----------------- |
| name | string | Yes | App account name. |
| key | string | Yes | Key of the data to obtain. |
| callback | AsyncCallback<string> | Yes | Callback invoked to return the data associated with the specified app account. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAssociatedData("ZhangSan", "k001", (err, result) => {
console.log("getAssociatedData err: " + JSON.stringify(err));
console.log('getAssociatedData result: ' + result);
});
```
### getAssociatedData
getAssociatedData(name: string, key: string): Promise<string>
Obtains data associated with an app account. This method uses a promise to return the result asynchronously.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---- | ------ | ---- | ----------- |
| name | string | Yes | App account name. |
| key | string | Yes | Key of the data to obtain. |
**Return Value**
| Type | Description |
| :-------------------- | :-------------------- |
| Promise<string> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAssociatedData("ZhangSan", "k001").then((data) => {
console.log('getAssociatedData: ' + data);
}).catch((err) => {
console.log("getAssociatedData err: " + JSON.stringify(err));
});
```
### getAllAccessibleAccounts
getAllAccessibleAccounts(callback: AsyncCallback<Array<AppAccountInfo>>): void
Obtains information about all accessible app accounts. This method uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.GET_ALL_APP_ACCOUNTS (available only to system applications)
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ---------------------------------------- | ---- | -------- |
| callback | AsyncCallback<Array<AppAccountInfo>> | Yes | Callback invoked to return information about all accessible app accounts. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAllAccessibleAccounts((err, data)=>{
console.debug("getAllAccessibleAccounts err:" + JSON.stringify(err));
console.debug("getAllAccessibleAccounts data:" + JSON.stringify(data));
});
```
### getAllAccessibleAccounts
getAllAccessibleAccounts(): Promise<Array<AppAccountInfo>>
Obtains information about all accessible app accounts. This method uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.GET_ALL_APP_ACCOUNTS (available only to system applications)
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Type | Description |
| ---------------------------------------- | --------------------- |
| Promise<Array<AppAccountInfo>> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAllAccessibleAccounts().then((data) => {
console.log('getAllAccessibleAccounts: ' + data);
}).catch((err) => {
console.log("getAllAccessibleAccounts err: " + JSON.stringify(err));
});
```
### getAllAccounts
getAllAccounts(owner: string, callback: AsyncCallback<Array<AppAccountInfo>>): void
Obtains information about all app accounts of the specified app. This method uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.GET_ALL_APP_ACCOUNTS (available only to system applications)
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ---------------------------------------- | ---- | -------- |
| owner | string | Yes | Bundle name of the app. |
| callback | AsyncCallback<Array<AppAccountInfo>> | Yes | Callback invoked to return information about all accessible app accounts. |
**Example**
```js
const appAccountManager = account.createAppAccountManager();
const selfBundle = "com.example.actsgetallaaccounts";
appAccountManager.getAllAccounts(selfBundle, (err, data)=>{
console.debug("getAllAccounts err:" + JSON.stringify(err));
console.debug("getAllAccounts data:" + JSON.stringify(data));
});
```
### getAllAccounts
getAllAccounts(owner: string): Promise<Array<AppAccountInfo>>
Obtains information about all app accounts of the specified app. This method uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.GET_ALL_APP_ACCOUNTS (available only to system applications)
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ----- | ------ | ---- | ----- |
| owner | string | Yes | Bundle name of the app. |
**Parameters**
| Type | Description |
| ---------------------------------------- | --------------------- |
| Promise<Array<AppAccountInfo>> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
const selfBundle = "com.example.actsgetallaaccounts";
appAccountManager.getAllAccounts(selfBundle).then((data) => {
console.log('getAllAccounts: ' + data);
}).catch((err) => {
console.log("getAllAccounts err: " + JSON.stringify(err));
});
```
### on('change')
on(type: 'change', owners: Array<string>, callback: Callback<Array<AppAccountInfo>>): void
Subscribes to the account change event of the specified account owners. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ---------------------------------------- | ---- | ------------------------------ |
| type | 'change' | Yes | Type of the event to subscribe to. The subscriber will receive a notification when the account owners update their accounts. |
| owners | Array<string> | Yes | Owners of the accounts. |
| callback | Callback<Array<AppAccountInfo>> | Yes | Callback invoked to return the account change. |
**Example**
```js
const appAccountManager = account.createAppAccountManager();
function changeOnCallback(data){
console.debug("receive change data:" + JSON.stringify(data));
}
try{
appAccountManager.on('change', ["com.example.actsaccounttest"], changeOnCallback);
}
catch(err){
console.error("on accountOnOffDemo err:" + JSON.stringify(err));
}
```
### off('change')
off(type: 'change', callback?: Callback>): void
Unsubscribes from the account change event. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | -------------------------------- | ---- | ------------ |
| type | 'change' | Yes | Account change event to unsubscribe from. |
| callback | Callback> | No | Callback used to report the account change. |
**Example**
```js
const appAccountManager = account.createAppAccountManager();
function changeOnCallback(data){
console.debug("receive change data:" + JSON.stringify(data));
appAccountManager.off('change', function(){
console.debug("off finish");
})
}
try{
appAccountManager.on('change', ["com.example.actsaccounttest"], changeOnCallback);
}
catch(err){
console.error("on accountOnOffDemo err:" + JSON.stringify(err));
}
```
### authenticate8+
authenticate(name: string, owner: string, authType: string, options: {[key: string]: any}, callback: AuthenticatorCallback): void
Authenticates an app account to obtain the Open Authorization (OAuth) access token. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | --------------------- | ---- | --------------- |
| name | string | Yes | Name of the app account to authenticate. |
| owner | string | Yes | Bundle name of the app. |
| authType | string | Yes | Authentication type. |
| options | {[key: string]: any} | Yes | Options for the authentication. |
| callback | AuthenticatorCallback | Yes | Authenticator callback invoked to return the authentication result. |
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility';
function onResultCallback(code, result) {
console.log("resultCode: " + code);
console.log("result: " + JSON.stringify(result));
}
function onRequestRedirectedCallback(request) {
let abilityStartSetting = {want: request};
featureAbility.startAbility(abilityStartSetting, (err)=>{
console.log("startAbility err: " + JSON.stringify(err));
});
}
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.authenticate("LiSi", "com.example.ohos.accountjsdemo", "readAge", {}, {
onResult: onResultCallback,
onRequestRedirected: onRequestRedirectedCallback
});
```
### getOAuthToken8+
getOAuthToken(name: string, owner: string, authType: string, callback: AsyncCallback<string>): void
Obtains the OAuth access token of an app account based on the specified authentication type. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | --------------------------- | ---- | ----------- |
| name | string | Yes | App account name. |
| owner | string | Yes | Bundle name of the app. |
| authType | string | Yes | Authentication type. |
| callback | AsyncCallback<string> | Yes | Callback invoked to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getOAuthToken("LiSi", "com.example.ohos.accountjsdemo", "readAge", (err, data) => {
console.log('getOAuthToken err: ' + JSON.stringify(err));
console.log('getOAuthToken token: ' + data);
});
```
### getOAuthToken8+
getOAuthToken(name: string, owner: string, authType: string): Promise<string>
Obtains the OAuth access token of an app account based on the specified authentication type. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ------ | ---- | ----------- |
| name | string | Yes | App account name. |
| owner | string | Yes | Bundle name of the app. |
| authType | string | Yes | Authentication type. |
**Parameters**
| Type | Description |
| --------------------- | --------------------- |
| Promise<string> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getOAuthToken("LiSi", "com.example.ohos.accountjsdemo", "readAge").then((data) => {
console.log('getOAuthToken token: ' + data);
}).catch((err) => {
console.log("getOAuthToken err: " + JSON.stringify(err));
});
```
### setOAuthToken8+
setOAuthToken(name: string, authType: string, token: string, callback: AsyncCallback<void>): void
Sets an OAuth access token for an app account. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ------------------------- | ---- | -------- |
| name | string | Yes | App account name. |
| authType | string | Yes | Authentication type. |
| token | string | Yes | OAuth access token to set. |
| callback | AsyncCallback<void> | Yes | Callback invoked to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.setOAuthToken("LiSi", "readAge", "xxxx", (err) => {
console.log('setOAuthToken err: ' + JSON.stringify(err));
});
```
### setOAuthToken8+
setOAuthToken(name: string, authType: string, token: string): Promise<void>
Sets an OAuth access token for an app account. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ------ | ---- | -------- |
| name | string | Yes | App account name. |
| authType | string | Yes | Authentication type. |
| token | string | Yes | OAuth access token to set. |
**Parameters**
| Type | Description |
| ------------------- | --------------------- |
| Promise<void> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.setOAuthToken("LiSi", "readAge", "xxxx").then(() => {
console.log('setOAuthToken successfully');
}).catch((err) => {
console.log('setOAuthToken err: ' + JSON.stringify(err));
});
```
### deleteOAuthToken8+
deleteOAuthToken(name: string, owner: string, authType: string, token: string, callback: AsyncCallback<void>): void
Deletes the specified OAuth access token for an app account. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ------------------------- | ---- | ------------ |
| name | string | Yes | App account name. |
| owner | string | Yes | Bundle name of the app. |
| authType | string | Yes | Authentication type. |
| token | string | Yes | OAuth access token to delete. |
| callback | AsyncCallback<void> | Yes | Callback invoked to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.deleteOAuthToken("LiSi", "com.example.ohos.accountjsdemo", "readAge", "xxxxx", (err) => {
console.log('deleteOAuthToken err: ' + JSON.stringify(err));
});
```
### deleteOAuthToken8+
deleteOAuthToken(name: string, owner: string, authType: string, token: string): Promise<void>
Deletes the specified OAuth access token for an app account. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ------ | ---- | ------------ |
| name | string | Yes | App account name. |
| owner | string | Yes | Bundle name of the app. |
| authType | string | Yes | Authentication type. |
| token | string | Yes | OAuth access token to delete. |
**Parameters**
| Type | Description |
| ------------------- | --------------------- |
| Promise<void> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.deleteOAuthToken("LiSi", "com.example.ohos.accountjsdemo", "readAge", "xxxxx").then(() => {
console.log('deleteOAuthToken successfully');
}).catch((err) => {
console.log("deleteOAuthToken err: " + JSON.stringify(err));
});
```
### setOAuthTokenVisibility8+
setOAuthTokenVisibility(name: string, authType: string, bundleName: string, isVisible: boolean, callback: AsyncCallback<void>): void
Sets the visibility of an OAuth access token to the specified app. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---------- | ------------------------- | ---- | ------------ |
| name | string | Yes | App account name. |
| authType | string | Yes | Authentication type. |
| bundleName | string | Yes | Bundle name of the app. |
| isVisible | boolean | Yes | Whether the OAuth access token is visible to the app. |
| callback | AsyncCallback<void> | Yes | Callback invoked to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.setOAuthTokenVisibility("LiSi", "readAge", "com.example.ohos.accountjsdemo", true, (err) => {
console.log('setOAuthTokenVisibility err: ' + JSON.stringify(err));
});
```
### setOAuthTokenVisibility8+
setOAuthTokenVisibility(name: string, authType: string, bundleName: string, isVisible: boolean): Promise<void>
Sets the visibility of an OAuth access token to the specified app. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---------- | ------- | ---- | ------------ |
| name | string | Yes | App account name. |
| authType | string | Yes | Authentication type. |
| bundleName | string | Yes | Bundle name of the app. |
| isVisible | boolean | Yes | Whether the OAuth access token is visible to the app. |
**Parameters**
| Type | Description |
| ------------------- | --------------------- |
| Promise<void> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.setOAuthTokenVisibility("LiSi", "readAge", "com.example.ohos.accountjsdemo", true).then(() => {
console.log('setOAuthTokenVisibility successfully');
}).catch((err) => {
console.log('setOAuthTokenVisibility err: ' + JSON.stringify(err));
});
```
### checkOAuthTokenVisibility8+
checkOAuthTokenVisibility(name: string, authType: string, bundleName: string, callback: AsyncCallback<boolean>): void
Checks whether an OAuth token is visible to the specified app. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---------- | ---------------------------- | ---- | ------------- |
| name | string | Yes | App account name. |
| authType | string | Yes | Authentication type. |
| bundleName | string | Yes | Bundle name of the app. |
| callback | AsyncCallback<boolean> | Yes | Callback invoked to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.checkOAuthTokenVisibility("LiSi", "readAge", "com.example.ohos.accountjsdemo", true, (err, data) => {
console.log('checkOAuthTokenVisibility err: ' + JSON.stringify(err));
console.log('checkOAuthTokenVisibility isVisible: ' + data);
});
```
### checkOAuthTokenVisibility8+
checkOAuthTokenVisibility(name: string, authType: string, bundleName: string): Promise<boolean>
Checks whether an OAuth token is visible to the specified app. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---------- | ------ | ---- | ------------- |
| name | string | Yes | App account name. |
| authType | string | Yes | Authentication type. |
| bundleName | string | Yes | Bundle name of the app. |
**Parameters**
| Type | Description |
| ---------------------- | --------------------- |
| Promise<boolean> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.checkOAuthTokenVisibility("LiSi", "readAge", "com.example.ohos.accountjsdemo", true).then((data) => {
console.log('checkOAuthTokenVisibility isVisible: ' + data);
}).catch((err) => {
console.log('checkOAuthTokenVisibility err: ' + JSON.stringify(err));
});
```
### getAllOAuthTokens8+
getAllOAuthTokens(name: string, owner: string, callback: AsyncCallback<Array<OAuthTokenInfo>>): void
Obtains information about all OAuth access tokens of an app account visible to the specified app. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ---------------------------------------- | ---- | ----------- |
| name | string | Yes | App account name. |
| owner | string | Yes | Bundle name of the app. |
| callback | AsyncCallback<Array<OAuthTokenInfo>> | Yes | Callback invoked to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAllOAuthTokens("LiSi", "com.example.ohos.accountjsdemo", (err, data) => {
console.log("getAllOAuthTokens err: " + JSON.stringify(err));
console.log('getAllOAuthTokens data: ' + JSON.stringify(data));
});
```
### getAllOAuthTokens8+
getAllOAuthTokens(name: string, owner: string): Promise<Array<OAuthTokenInfo>>
Obtains information about all OAuth access tokens of an app account visible to the specified app. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ----- | ------ | ---- | ----------- |
| name | string | Yes | App account name. |
| owner | string | Yes | Bundle name of the app. |
**Parameters**
| Type | Description |
| ---------------------------------------- | --------------------- |
| Promise<Array<OAuthTokenInfo>> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAllOAuthTokens("LiSi", "com.example.ohos.accountjsdemo").then((data) => {
console.log('getAllOAuthTokens data: ' + JSON.stringify(data));
}).catch((err) => {
console.log("getAllOAuthTokens err: " + JSON.stringify(err));
});
```
### getOAuthList8+
getOAuthList(name: string, authType: string, callback: AsyncCallback<Array<string>>): void
Obtains the authorization list of OAuth access tokens of an app account. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ---------------------------------------- | ---- | ----------- |
| name | string | Yes | App account name. |
| owner | string | Yes | Bundle name of the app. |
| callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getOAuthList("com.example.ohos.accountjsdemo", "readAge", (err, data) => {
console.log('getOAuthList err: ' + JSON.stringify(err));
console.log('getOAuthList data: ' + JSON.stringify(data));
});
```
### getOAuthList8+
getOAuthList(name: string, authType: string): Promise<Array<string>>
Obtains the authorization list of OAuth access tokens of an app account. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ----- | ------ | ---- | ----------- |
| name | string | Yes | App account name. |
| owner | string | Yes | Bundle name of the app. |
**Parameters**
| Type | Description |
| ---------------------------------- | --------------------- |
| Promise<Array<string>> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getOAuthList("com.example.ohos.accountjsdemo", "readAge").then((data) => {
console.log('getOAuthList data: ' + JSON.stringify(data));
}).catch((err) => {
console.log("getOAuthList err: " + JSON.stringify(err));
});
```
### getAuthenticatorCallback8+
getAuthenticatorCallback(sessionId: string, callback: AsyncCallback<AuthenticatorCallback>): void
Obtains the authenticator callback for a session. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| --------- | ---------------------------------------- | ---- | -------- |
| sessionId | string | Yes | ID of the session to authenticate. |
| callback | AsyncCallback<AuthenticatorCallback> | Yes | Callback invoked to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
featureAbility.getWant((err, want) => {
var sessionId = want.parameters[account_appAccount.Constants.KEY_SESSION_ID];
appAccountManager.getAuthenticatorCallback(sessionId, (err, callback) => {
if (err.code != account_appAccount.ResultCode.SUCCESS) {
console.log("getAuthenticatorCallback err: " + JSON.stringify(err));
return;
}
var result = {[account_appAccount.Constants.KEY_NAME]: "LiSi",
[account_appAccount.Constants.KEY_OWNER]: "com.example.ohos.accountjsdemo",
[account_appAccount.Constants.KEY_AUTH_TYPE]: "readAge",
[account_appAccount.Constants.KEY_TOKEN]: "xxxxxx"};
callback.OnResult(account_appAccount.ResultCode.SUCCESS, result);
});
});
```
### getAuthenticatorCallback8+
getAuthenticatorCallback(sessionId: string): Promise<AuthenticatorCallback>
Obtains the authenticator callback for a session. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| --------- | ------ | ---- | -------- |
| sessionId | string | Yes | ID of the session to authenticate. |
**Parameters**
| Type | Description |
| ------------------------------------ | --------------------- |
| Promise<AuthenticatorCallback> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
featureAbility.getWant().then((want) => {
var sessionId = want.parameters[account_appAccount.Constants.KEY_SESSION_ID];
appAccountManager.getAuthenticatorCallback(sessionId).then((callback) => {
var result = {[account_appAccount.Constants.KEY_NAME]: "LiSi",
[account_appAccount.Constants.KEY_OWNER]: "com.example.ohos.accountjsdemo",
[account_appAccount.Constants.KEY_AUTH_TYPE]: "readAge",
[account_appAccount.Constants.KEY_TOKEN]: "xxxxxx"};
callback.OnResult(account_appAccount.ResultCode.SUCCESS, result);
}).catch((err) => {
console.log("getAuthenticatorCallback err: " + JSON.stringify(err));
});
}).catch((err) => {
console.log("getWant err: " + JSON.stringify(err));
});
```
### getAuthenticatorInfo8+
getAuthenticatorInfo(owner: string, callback: AsyncCallback<AuthenticatorInfo>): void
Obtains authenticator information of an app account. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | -------------------------------------- | ---- | ----------- |
| owner | string | Yes | Bundle name of the app. |
| callback | AsyncCallback<AuthenticatorInfo> | Yes | Callback invoked to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAuthenticatorInfo("com.example.ohos.accountjsdemo", (err, data) => {
console.log("getAuthenticatorInfo err: " + JSON.stringify(err));
console.log('getAuthenticatorInfo data: ' + JSON.stringify(data));
});
```
### getAuthenticatorInfo8+
getAuthenticatorInfo(owner: string): Promise<AuthenticatorInfo>
Obtains authenticator information of an app account. This method uses a promise to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ----- | ------ | ---- | ----------- |
| owner | string | Yes | Bundle name of the app. |
**Parameters**
| Type | Description |
| -------------------------------- | --------------------- |
| Promise<AuthenticatorInfo> | Promise used to return the result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
appAccountManager.getAuthenticatorInfo("com.example.ohos.accountjsdemo").then((data) => {
console.log('getAuthenticatorInfo: ' + JSON.stringify(data));
}).catch((err) => {
console.log("getAuthenticatorInfo err: " + JSON.stringify(err));
});
```
## AppAccountInfo
Defines app account information.
**System capability**: SystemCapability.Account.AppAccount
| Name | Type | Mandatory | Description |
| ----- | ------ | ---- | ----------- |
| owner | string | Yes | Bundle name of the app. |
| name | string | Yes | App account name. |
## OAuthTokenInfo8+
Defines OAuth access token information.
**System capability**: SystemCapability.Account.AppAccount
| Name | Type | Mandatory | Description |
| -------- | ------ | ---- | -------- |
| authType | string | Yes | Authentication type. |
| token | string | Yes | Value of the access token. |
## AuthenticatorInfo8+
Defines OAuth authenticator information.
**System capability**: SystemCapability.Account.AppAccount
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ---------- |
| owner | string | Yes | Bundle name of the authenticator owner. |
| iconId | string | Yes | ID of the authenticator icon. |
| labelId | string | Yes | ID of the authenticator label. |
## Constants8+
Enumerates the constants.
**System capability**: SystemCapability.Account.AppAccount
| Name | Default Value | Description |
| ----------------------------- | ---------------------- | ------------- |
| ACTION_ADD_ACCOUNT_IMPLICITLY | "addAccountImplicitly" | Operation for implicitly adding an account. |
| ACTION_AUTHENTICATE | "authenticate" | Authentication operation. |
| KEY_NAME | "name" | App account name. |
| KEY_OWNER | "owner" | App account owner. |
| KEY_TOKEN | "token" | OAuth access token. |
| KEY_ACTION | "action" | Action. |
| KEY_AUTH_TYPE | "authType" | Authentication type. |
| KEY_SESSION_ID | "sessionId" | Session ID. |
| KEY_CALLER_PID | "callerPid" | Caller process ID (PID). |
| KEY_CALLER_UID | "callerUid" | Caller user ID (UID). |
| KEY_CALLER_BUNDLE_NAME | "callerBundleName" | Caller bundle name. |
## ResultCode8+
Enumerates the result codes.
**System capability**: SystemCapability.Account.AppAccount
| Name | Default Value | Description |
| ----------------------------------- | ----- | ------------ |
| SUCCESS | 0 | The operation is successful. |
| ERROR_ACCOUNT_NOT_EXIST | 10001 | The app account does not exist. |
| ERROR_APP_ACCOUNT_SERVICE_EXCEPTION | 10002 | The app account service is abnormal. |
| ERROR_INVALID_PASSWORD | 10003 | The password is invalid. |
| ERROR_INVALID_REQUEST | 10004 | The request is invalid. |
| ERROR_INVALID_RESPONSE | 10005 | The response is invalid. |
| ERROR_NETWORK_EXCEPTION | 10006 | The network is abnormal. |
| ERROR_OAUTH_AUTHENTICATOR_NOT_EXIST | 10007 | The authenticator does not exist. |
| ERROR_OAUTH_CANCELED | 10008 | The authentication is canceled. |
| ERROR_OAUTH_LIST_TOO_LARGE | 10009 | The size of the OAuth list exceeds the limit. |
| ERROR_OAUTH_SERVICE_BUSY | 10010 | The OAuth service is busy. |
| ERROR_OAUTH_SERVICE_EXCEPTION | 10011 | The OAuth service is abnormal. |
| ERROR_OAUTH_SESSION_NOT_EXIST | 10012 | The session to be authenticated does not exist. |
| ERROR_OAUTH_TIMEOUT | 10013 | The authentication timed out. |
| ERROR_OAUTH_TOKEN_NOT_EXIST | 10014 | The OAuth access token does not exist. |
| ERROR_OAUTH_TOKEN_TOO_MANY | 10015 | The number of OAuth access tokens reaches the limit. |
| ERROR_OAUTH_UNSUPPORT_ACTION | 10016 | The authentication operation is not supported. |
| ERROR_OAUTH_UNSUPPORT_AUTH_TYPE | 10017 | The authentication type is not supported. |
| ERROR_PERMISSION_DENIED | 10018 | The required permission is missing. |
## AuthenticatorCallback8+
Provides methods for managing the OAuth authenticator callback.
### onResult8+
onResult: (code: number, result: {[key: string]: any}) => void
Called back to send the authentication result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ------ | -------------------- | ---- | ------ |
| code | number | Yes | Authentication result code. |
| result | {[key: string]: any} | Yes | Authentication result. |
**Example**
```js
const appAccountManager = account_appAccount.createAppAccountManager();
var sessionId = "1234";
appAccountManager.getAuthenticatorCallback(sessionId).then((callback) => {
var result = {[account_appAccount.Constants.KEY_NAME]: "LiSi",
[account_appAccount.Constants.KEY_OWNER]: "com.example.ohos.accountjsdemo",
[account_appAccount.Constants.KEY_AUTH_TYPE]: "readAge",
[account_appAccount.Constants.KEY_TOKEN]: "xxxxxx"};
callback.OnResult(account_appAccount.ResultCode.SUCCESS, result);
}).catch((err) => {
console.log("getAuthenticatorCallback err: " + JSON.stringify(err));
});
```
### onRequestRedirected8+
onRequestRedirected: (request: Want) => void
Called back to redirect an authentication request.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ---- | ---- | ---------- |
| request | Want | Yes | Request to be redirected. |
**Example**
```js
class MyAuthenticator extends account_appAccount.Authenticator {
addAccountImplicitly(authType, callerBundleName, options, callback) {
callback.onRequestRedirected({
bundleName: "com.example.ohos.accountjsdemo",
abilityName: "com.example.ohos.accountjsdemo.LoginAbility",
});
}
authenticate(name, authType, callerBundleName, options, callback) {
var result = {[account_appAccount.Constants.KEY_NAME]: name,
[account_appAccount.Constants.KEY_AUTH_TYPE]: authType,
[account_appAccount.Constants.KEY_TOKEN]: "xxxxxx"};
callback.onResult(account_appAccount.ResultCode.SUCCESS, result);
}
}
```
## Authenticator8+
Defines the OAuth authenticator base class.
### addAccountImplicitly8+
addAccountImplicitly(authType: string, callerBundleName: string, options: {[key: string]: any}, callback: AuthenticatorCallback): void
Implicitly adds an app account based on the specified authentication type and options. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---------------- | --------------------- | ---- | --------------- |
| authType | string | Yes | Authentication type. |
| callerBundleName | string | Yes | Bundle name of the authentication requester. |
| options | {[key: string]: any} | Yes | Options for the authentication. |
| callback | AuthenticatorCallback | Yes | Authenticator callback invoked to return the authentication result. |
### authenticate8+
authenticate(name: string, authType: string, callerBundleName: string, options: {[key: string]: any}, callback: AuthenticatorCallback): void
Authenticates an app account to obtain the OAuth access token. This method uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Account.AppAccount
**Parameters**
| Name | Type | Mandatory | Description |
| ---------------- | --------------------- | ---- | --------------- |
| name | string | Yes | App account name. |
| authType | string | Yes | Authentication type. |
| callerBundleName | string | Yes | Bundle name of the authentication requester. |
| options | {[key: string]: any} | Yes | Options for the authentication. |
| callback | AuthenticatorCallback | Yes | Authenticator callback invoked to return the authentication result. |
**Example**
```js
class MyAuthenticator extends account_appAccount.Authenticator {
addAccountImplicitly(authType, callerBundleName, options, callback) {
callback.onRequestRedirected({
bundleName: "com.example.ohos.accountjsdemo",
abilityName: "com.example.ohos.accountjsdemo.LoginAbility",
});
}
authenticate(name, authType, callerBundleName, options, callback) {
var result = {[account_appAccount.Constants.KEY_NAME]: name,
[account_appAccount.Constants.KEY_AUTH_TYPE]: authType,
[account_appAccount.Constants.KEY_TOKEN]: "xxxxxx"};
callback.onResult(account_appAccount.ResultCode.SUCCESS, result);
}
}
export default {
onConnect(want) {
return new MyAuthenticator();
}
}
```