# 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(); } } ```