• 鸿蒙开发接口安全:【@ohos.abilityAccessCtrl (访问控制管理)】


    访问控制管理

    icon-note.gif 说明:  本模块首批接口从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

    参数:

    参数名类型必填说明
    tokenIDnumber要校验的目标应用的身份标识。
    permissionNamestring需要校验的权限名称。

    返回值:

    类型说明
    PromisePromise实例,用于获取异步返回的授权状态结果。

    示例:

    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

    参数:

    参数名类型必填说明
    tokenIDnumber目标应用的身份标识。
    permissionNamestring被授予的权限名称。
    permissionFlagnumber授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。

    返回值:

    类型说明
    PromisePromise实例,用于获取异步返回的授权操作结果。

    示例:

    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

    参数:

    参数名类型必填说明
    tokenIDnumber目标应用的身份标识。
    permissionNamestring被授予的权限名称。
    permissionFlagnumber授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。
    callbackAsyncCallback检查授予应用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

    参数:

    参数名类型必填说明
    tokenIDnumber目标应用的身份标识。
    permissionNamestring被撤销的权限名称。
    permissionFlagnumber授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。

    返回值:

    类型说明
    PromisePromise实例,用于获取异步返回的授权操作结果。

    示例:

    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

    参数:

    参数名类型必填说明
    tokenIDnumber目标应用的身份标识。
    permissionNamestring被撤销的权限名称。
    permissionFlagnumber授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。
    callbackAsyncCallback检查撤销应用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

    参数:

    参数名类型必填说明
    tokenIDnumber目标应用的身份标识。
    permissionNamestring查询的权限名称。

    返回值:

    类型说明
    PromisePromise实例,用于获取异步返回的查询结果。

    示例:

    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_GRANTED0表示已授权。
  • 相关阅读:
    spring framework 5.2 文档 - 概述
    C++函数总结,看这一篇就够了
    【CSS】聊聊less、sass、scss以及compass
    Servlet管理机制问题
    什么是Ribbon的饥饿加载?有什么优势?
    ​@Cacheable 注解​
    在NetSuite中实现合作伙伴管理
    由C# dynamic是否装箱引发的思考
    Pointnet++的改进
    微软黑科技如何加速游戏开发,读这篇就够了
  • 原文地址:https://blog.csdn.net/2301_76813281/article/details/139455170