本文主要是介绍鸿蒙开发接口安全:【@ohos.abilityAccessCtrl (访问控制管理)】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
访问控制管理
说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'
abilityAccessCtrl.createAtManager
createAtManager(): AtManager
访问控制管理:获取访问控制模块对象。
系统能力: SystemCapability.Security.AccessToken
返回值:
类型 | 说明 |
---|---|
[AtManager] | 获取访问控制模块的实例。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
AtManager
管理访问控制模块的实例。
verifyAccessToken
verifyAccessToken(tokenID: number, permissionName: string): Promise
校验应用是否授予权限,使用Promise方式异步返回结果。
系统能力: SystemCapability.Security.AccessToken
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
tokenID | number | 是 | 要校验的目标应用的身份标识。 |
permissionName | string | 是 | 需要校验的权限名称。 |
返回值:
类型 | 说明 |
---|---|
Promise | Promise实例,用于获取异步返回的授权状态结果。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let promise = AtManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
promise.then(data => {console.log(`promise: data->${JSON.stringify(data)}`);
});
grantUserGrantedPermission
grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise
授予应用user grant权限,使用Promise方式异步返回结果。
需要权限: ohos.permission.GRANT_SENSITIVE_PERMISSIONS
系统能力: SystemCapability.Security.AccessToken
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
tokenID | number | 是 | 目标应用的身份标识。 |
permissionName | string | 是 | 被授予的权限名称。 |
permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
返回值:
类型 | 说明 |
---|---|
Promise | Promise实例,用于获取异步返回的授权操作结果。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let permissionFlag = 1;
let promise = AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",permissionFlag);
promise.then(data => {console.log(`promise: data->${JSON.stringify(data)}`);
});
grantUserGrantedPermission
grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback): void
授予应用user grant权限,使用callback回调异步返回结果。
需要权限: ohos.permission.GRANT_SENSITIVE_PERMISSIONS
系统能力: SystemCapability.Security.AccessToken
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
tokenID | number | 是 | 目标应用的身份标识。 |
permissionName | string | 是 | 被授予的权限名称。 |
permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
callback | AsyncCallback | 是 | 检查授予应用user grant权限的操作结果同步的回调。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let permissionFlag = 1;
AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",permissionFlag, data => {console.log(`callback: data->${JSON.stringify(data)}`);
});
revokeUserGrantedPermission
revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise
撤销应用user grant权限,使用Promise方式异步返回结果。
需要权限: ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
系统能力: SystemCapability.Security.AccessToken
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
tokenID | number | 是 | 目标应用的身份标识。 |
permissionName | string | 是 | 被撤销的权限名称。 |
permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
返回值:
类型 | 说明 |
---|---|
Promise | Promise实例,用于获取异步返回的授权操作结果。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let permissionFlag = 1;
let promise = AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag);
promise.then(data => {console.log(`promise: data->${JSON.stringify(data)}`);
});
revokeUserGrantedPermission
revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback): void
撤销应用user grant权限,使用callback回调异步返回结果。
需要权限: ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
系统能力: SystemCapability.Security.AccessToken
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
tokenID | number | 是 | 目标应用的身份标识。 |
permissionName | string | 是 | 被撤销的权限名称。 |
permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
callback | AsyncCallback | 是 | 检查撤销应用user grant权限的操作结果同步的回调。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let permissionFlag = 1;
AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",permissionFlag, data => {console.log(`callback: data->${JSON.stringify(data)}`);
});
getPermissionFlags
getPermissionFlags(tokenID: number, permissionName: string): Promise
获取指定应用的指定权限的flag,使用Promise方式异步返回结果。
需要权限: ohos.permission.GET_SENSITIVE_PERMISSIONS or GRANT_SENSITIVE_PERMISSIONS or REVOKE_SENSITIVE_PERMISSIONS
系统能力: SystemCapability.Security.AccessToken
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
tokenID | number | 是 | 目标应用的身份标识。 |
permissionName | string | 是 | 查询的权限名称。 |
返回值:
类型 | 说明 |
---|---|
Promise | Promise实例,用于获取异步返回的查询结果。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let promise = AtManager.getPermissionFlags(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 | 表示已授权。 |
这篇关于鸿蒙开发接口安全:【@ohos.abilityAccessCtrl (访问控制管理)】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!