1# 访问控制权限校验指导 2 3## 场景介绍 4 5应用在提供对外功能服务接口时,可以根据接口涉数据的敏感程度或所涉能力的安全威胁影响,在系统定义的权限列表中[权限定义列表](permission-list.md)选择合适的权限限制当前接口的开放范围,对接口访问者进行权限校验。 6 7## 接口说明 8 9以下仅列举本指导使用的接口,更多说明可以查阅[API参考](../reference/apis/js-apis-abilityAccessCtrl.md)。 10 11checkAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus> 12 13| 参数名 | 类型 | 必填 | 说明 | 14| -------- | ------------------- | ---- | ------------------------------------------ | 15| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](../reference/apis/js-apis-bundleManager-applicationInfo.md)获得。 | 16| permissionName | Permissions | 是 | 需要校验的权限名称,合法的权限名取值可在[系统权限定义列表](permission-list.md)中查询。 | 17 18 19## 完整示例 20 21进行权限校验的开发步骤为: 22 231. 获取调用者的身份标识:tokenId。 24 > **说明:**<br> 25 > 获取访问者身份标识tokenId的方法 getCallingTokenId 可参考[API参考](../reference/apis/js-apis-rpc.md)。 262. 待校验的权限名:ohos.permission.ACCELEROMETER。 273. 使用checkAccessToken接口对当前调用者进行权限校验。 284. 根据权限校验结果采取对应的措施。 29 30```js 31 import abilityAccessCtrl from '@ohos.abilityAccessCtrl' 32 import rpc from '@ohos.rpc' 33 34 class Stub extends rpc.RemoteObject { 35 onRemoteRequest(code, data, reply, option) { 36 let callerTokenId = rpc.IPCSkeleton.getCallingTokenId(); 37 console.log("RpcServer: getCallingTokenId result: " + callerTokenId); 38 var atManager = abilityAccessCtrl.createAtManager(); 39 try { 40 atManager.checkAccessToken(callerTokenId, "ohos.permission.ACCELEROMETER").then((data) => { 41 console.log(`checkAccessToken success, data->${JSON.stringify(data)}`); 42 }).catch((err) => { 43 console.log(`checkAccessToken fail, err->${JSON.stringify(err)}`); 44 }); 45 } catch(err) { 46 console.log(`catch err->${JSON.stringify(err)}`); 47 } 48 return true; 49 } 50 } 51 52```