HarmonyOS API:@ohos.abilityAccessCtrl (程序访问控制管理)

joytrian
发布于 2023-4-4 16:06
浏览
0收藏

版本:v3.1 Beta

@ohos.abilityAccessCtrl (程序访问控制管理)

更新时间: 2023-02-17 09:19


程序访问控制提供程序的权限管理能力,包括鉴权、授权和取消授权等。


说明

本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import abilityAccessCtrl from '@ohos.abilityAccessCtrl'

abilityAccessCtrl.createAtManager

createAtManager(): AtManager


访问控制管理:获取访问控制模块对象。


系统能力: SystemCapability.Security.AccessToken


返回值:

类型

说明

​AtManager​

获取访问控制模块的实例。

示例:

let atManager = abilityAccessCtrl.createAtManager();

AtManager

管理访问控制模块的实例。

checkAccessToken9+

checkAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>

校验应用是否授予权限。使用Promise异步回调。

系统能力: SystemCapability.Security.AccessToken

参数:

参数名

类型

必填

说明

tokenID

number

要校验的目标应用的身份标识。可通过应用的​​ApplicationInfo​​获得。

permissionName

Permissions

需要校验的权限名称,合法的权限名取值可在​​系统权限定义列表​​中查询。

返回值:

类型

说明

Promise<GrantStatus>

Promise对象。返回授权状态结果。

错误码:

以下错误码的详细介绍请参见程序访问控制错误码。

错误码ID

错误信息

12100001

The parameter is invalid. The tokenID is 0

示例:

import abilityAccessCtrl from '@ohos.abilityAccessCtrl';

let atManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
try {
    atManager.checkAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS").then((data) => {
        console.log(`checkAccessToken success, data->${JSON.stringify(data)}`);
    }).catch((err) => {
        console.log(`checkAccessToken fail, err->${JSON.stringify(err)}`);
    });
} catch(err) {
    console.log(`catch err->${JSON.stringify(err)}`);
}

verifyAccessTokenSync9+

verifyAccessTokenSync(tokenID: number, permissionName: Permissions): GrantStatus

校验应用是否被授予权限,同步返回结果。

系统能力: SystemCapability.Security.AccessToken

参数:

参数名

类型

必填

说明

tokenID

number

要校验应用的身份标识。

permissionName

Permissions

需要校验的权限名称,合法的权限名取值可在​​系统权限定义列表​​中查询。

返回值:

类型

说明

​GrantStatus​

枚举实例,返回授权状态。

错误码:

以下错误码的详细介绍请参见程序访问控制错误码。

错误码ID

错误信息

12100001

The parameter is invalid. The tokenID is 0

示例:

let atManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let data = atManager.verifyAccessTokenSync(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
console.log(`data->${JSON.stringify(data)}`);

verifyAccessToken9+

verifyAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>

校验应用是否授予权限。使用Promise异步回调。


说明

建议使用​​checkAccessToken​​替代。


系统能力: SystemCapability.Security.AccessToken

参数:

参数名

类型

必填

说明

tokenID

number

要校验的目标应用的身份标识。可通过应用的​​ApplicationInfo​​获得。

permissionName

Permissions

需要校验的权限名称,合法的权限名取值可在​​系统权限定义列表​​中查询。

返回值:

类型

说明

Promise<GrantStatus>

Promise对象。返回授权状态结果。

示例:

import abilityAccessCtrl from '@ohos.abilityAccessCtrl';

let atManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let promise = atManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
promise.then(data => {
    console.log(`promise: data->${JSON.stringify(data)}`);
});

requestPermissionsFromUser9+

requestPermissionsFromUser(context: Context, permissions: Array<Permissions>, requestCallback: AsyncCallback<PermissionRequestResult>) : void;

用于拉起弹框请求用户授权。使用callback异步回调。

模型约束:此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Security.AccessToken

参数:

参数名

类型

必填

说明

context

Context

请求权限的应用ability上下文context。

permissions

Array<Permissions>

权限名列表,合法的权限名取值可在​​系统权限定义列表​​中查询。

callback

AsyncCallback<PermissionRequestResult>

回调函数,返回接口调用是否成功的结果。

错误码:

以下错误码的详细介绍请参见程序访问控制错误码。

错误码ID

错误信息

12100001

Parameter invalid.

示例:

import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
let atManager = abilityAccessCtrl.createAtManager();
try {
  atManager.requestPermissionsFromUser(this.context, ["ohos.permission.CAMERA"], (err, data)=>{
      console.info("data:" + JSON.stringify(data));
      console.info("data permissions:" + data.permissions);
      console.info("data authResults:" + data.authResults);
  });
} catch(err) {
  console.log(`catch err->${JSON.stringify(err)}`);
}

requestPermissionsFromUser9+

requestPermissionsFromUser(context: Context, permissions: Array<Permissions>) : Promise<PermissionRequestResult>;

用于拉起弹框请求用户授权。使用promise异步回调。

模型约束:此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Security.AccessToken

参数:

参数名

类型

必填

说明

context

Context

请求权限的应用ability上下文context。

permissions

Array<Permissions>

需要校验的权限名称,合法的权限名取值可在​​系统权限定义列表​​中查询。

返回值:

类型

说明

Promise<PermissionRequestResult>

返回一个Promise,包含接口的结果。

错误码:

以下错误码的详细介绍请参见程序访问控制错误码。

错误码ID

错误信息

12100001

Parameter invalid.

示例:

import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
let atManager = abilityAccessCtrl.createAtManager();
try {
  atManager.requestPermissionsFromUser(this.context, ["ohos.permission.CAMERA"]).then((data) => {
      console.info("data:" + JSON.stringify(data));
      console.info("data permissions:" + data.permissions);
      console.info("data authResults:" + data.authResults);
  }).catch((err) => {
      console.info("data:" + JSON.stringify(err));
  })
} catch(err) {
  console.log(`catch err->${JSON.stringify(err)}`);
}

verifyAccessToken(deprecated)

verifyAccessToken(tokenID: number, permissionName: string): Promise<GrantStatus>

校验应用是否授予权限。使用Promise异步回调。


说明

从API version 9开始不再维护,建议使用​​checkAccessToken​​替代。


系统能力: SystemCapability.Security.AccessToken

参数:

参数名

类型

必填

说明

tokenID

number

要校验的目标应用的身份标识。可通过应用的​​ApplicationInfo​​获得。

permissionName

string

需要校验的权限名称。

返回值:

类型

说明

Promise<GrantStatus>

Promise对象。返回授权状态结果。

示例:

import abilityAccessCtrl from '@ohos.abilityAccessCtrl';

let atManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let promise = atManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
promise.then(data => {
    console.log(`promise: data->${JSON.stringify(data)}`);
});

GrantStatus

表示授权状态的枚举。


系统能力: SystemCapability.Security.AccessToken

名称

说明

PERMISSION_DENIED

-1

表示未授权。

PERMISSION_GRANTED

0

表示已授权。


文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-abilityaccessctrl-0000001478341361-V3?catalogVersion=V3#ZH-CN_TOPIC_0000001478341361__导入模块​

分类
已于2023-4-4 16:06:39修改
收藏
回复
举报
回复
    相关推荐