diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md index 5834381fe4f5cddb0c648316714160f6513aad55..ac35ccf1c557b145193005078802237787ce094e 100644 --- a/zh-cn/application-dev/reference/apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis/Readme-CN.md @@ -20,6 +20,7 @@ - [媒体服务](js-apis-media.md) - 安全 - [用户认证](js-apis-useriam-userauth.md) + - [访问控制](js-apis-security-accessToken.md) - 数据管理 - [轻量级存储](js-apis-data-storage.md) - [分布式数据管理](js-apis-distributed-data.md) diff --git a/zh-cn/application-dev/reference/apis/js-apis-security-accessToken.md b/zh-cn/application-dev/reference/apis/js-apis-security-accessToken.md new file mode 100644 index 0000000000000000000000000000000000000000..09e204bff8581a44fd227abd2f98c0050a930ea4 --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-security-accessToken.md @@ -0,0 +1,216 @@ +# 访问控制管理 + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + +## 导入模块 + +``` +import abilityAccessCtrl from '@ohos.abilityAccessCtrl' +``` + +## 系统能力 +SystemCapability.Security.AccessToken + +## abilityAccessCtrl.createAtManager + +createAtManager(): AtManager + +访问控制管理:获取访问控制模块对象。 + +- 返回值: + | 类型 | 说明 | + | -------- | -------- | + | [AtManager](#atManager) | 获取访问控制模块的实例。 | + +- 示例: + ``` + var AtManager = abilityAccessCtrl.createAtManager(); + ``` + +## AtManager + +管理访问控制模块的实例。 + +### verifyAccessToken + +verifyAccessToken(tokenID: number, permissionName: string): Promise<GrantStatus> + +校验应用是否授予权限,使用Promise方式异步返回结果。 + +- 参数: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | ------------------- | ---- | ------------------------------------------ | + | tokenID | number | 是 | 要校验的目标应用的身份标识。 | + | permissionName | string | 是 | 需要校验的权限名称。 | + +- 返回值: + + | 类型 | 说明 | + | :------------ | :---------------------------------- | + | Promise<GrantStatus> | Promise实例,用于获取异步返回的授权状态结果。 | + +- 示例: + + ``` + const 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<number> + +授予应用user grant权限,使用Promise方式异步返回结果。 + +需要权限:ohos.permission.GRANT_SENSITIVE_PERMISSIONS。 + +- 参数: + + | 参数名 | 类型 | 必填 | 说明 | + | --------- | ------------------- | ---- | ------------------------------------------------------------ | + | tokenID | number | 是 | 目标应用的身份标识。 | + | permissionName | string | 是 | 被授予的权限名称。 | + | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | + +- 返回值: + + | 类型 | 说明 | + | :------------ | :---------------------------------- | + | Promise<number> | Promise实例,用于获取异步返回的授权操作结果。 | +- 示例: + + ``` + const AtManager = abilityAccessCtrl.createAtManager(); + let tokenID = 0; + let promise = AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS"); + promise.then(data => { + console.log(`promise: data->${JSON.stringify(data)}`); + }); + ``` + + + +### grantUserGrantedPermission + +grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback<number>): void + +授予应用user grant权限,使用callback回调异步返回结果。 + +需要权限:ohos.permission.GRANT_SENSITIVE_PERMISSIONS。 + +- 参数: + + | 参数名 | 类型 | 必填 | 说明 | + | --------- | ------------------- | ---- | ------------------------------------------------------------ | + | tokenID | number | 是 | 目标应用的身份标识。 | + | permissionName | string | 是 | 被授予的权限名称。 | + | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | + | callback | AsyncCallback<number> | 是 | 检查授予应用user grant权限的操作结果同步的回调。 | + +- 示例: + + ``` + const 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<number> + +撤销应用user grant权限,使用Promise方式异步返回结果。 + +需要权限:ohos.permission.REVOKE_SENSITIVE_PERMISSIONS。 + +- 参数: + + | 参数名 | 类型 | 必填 | 说明 | + | --------- | ------------------- | ---- | ------------------------------------------------------------ | + | tokenID | number | 是 | 目标应用的身份标识。 | + | permissionName | string | 是 | 被撤销的权限名称。 | + | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | + +- 返回值: + + | 类型 | 说明 | + | :------------ | :---------------------------------- | + | Promise<number> | Promise实例,用于获取异步返回的授权操作结果。 | + +- 示例: + + ``` + const 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<number>): void + +撤销应用user grant权限,使用callback回调异步返回结果。 + +需要权限:ohos.permission.REVOKE_SENSITIVE_PERMISSIONS。 + +- 参数: + + | 参数名 | 类型 | 必填 | 说明 | + | --------- | ------------------- | ---- | ------------------------------------------------------------ | + | tokenID | number | 是 | 目标应用的身份标识。 | + | permissionName | string | 是 | 被撤销的权限名称。 | + | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | + | callback | AsyncCallback<number> | 是 | 检查撤销应用user grant权限的操作结果同步的回调。 | + +- 示例: + + ``` + const AtManager = abilityAccessCtrl.createAtManager(); + let tokenID = 0; + AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",permissionFlag, data => { + console.log(`callback: data->${JSON.stringify(data)}`); + }); + ``` + +### getPermissionFlags + +getPermissionFlags(tokenID: number, permissionName: string): Promise<number> + +获取指定应用的指定权限的flag,使用Promise方式异步返回结果。 + +- 参数: + + | 参数名 | 类型 | 必填 | 说明 | + | --------- | ------------------- | ---- | ------------------------------------------------------------ | + | tokenID | number | 是 | 目标应用的身份标识。 | + | permissionName | string | 是 | 查询的权限名称。 | + +- 返回值: + + | 类型 | 说明 | + | :------------ | :---------------------------------- | + | Promise<number> | Promise实例,用于获取异步返回的查询结果。 | + +- 示例: + + ``` + const 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)}`); + }); + ``` \ No newline at end of file