应用在提供对外功能服务接口时,可以根据接口涉数据的敏感程度或所涉能力的安全威胁影响,在系统定义的权限列表中权限定义列表选择合适的权限限制当前接口的开放范围,对接口访问者进行权限校验。
以下仅列举本指导使用的接口。
checkAccessToken(tokenID: number, permissionName: Permissions): Promise
| 参数名 | 类型 | 必填 | 说明 |
| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的ApplicationInfo获得。 |
| permissionName | Permissions | 是 | 需要校验的权限名称,合法的权限名取值可在系统权限定义列表中查询。 |
进行权限校验的开发步骤为:
1.获取调用者的身份标识:tokenId。
2.待校验的权限名:ohos.permission.ACCELEROMETER。
3.使用checkAccessToken接口对当前调用者进行权限校验。
4.根据权限校验结果采取对应的措施。
- import abilityAccessCtrl from '@ohos.abilityAccessCtrl'
- import rpc from '@ohos.rpc'
-
- class Stub extends rpc.RemoteObject {
- onRemoteRequest(code, data, reply, option) {
- let callerTokenId = rpc.IPCSkeleton.getCallingTokenId();
- console.log("RpcServer: getCallingTokenId result: " + callerTokenId);
- var atManager = abilityAccessCtrl.createAtManager();
- try {
- atManager.checkAccessToken(callerTokenId, "ohos.permission.ACCELEROMETER").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)}`);
- }
- return true;
- }
- }
本文根据HarmonyOS官方文档API9整理