提交 16a0ea03 编写于 作者: L l00520400

开发指南

Signed-off-by: Nl00520400 <linshuqing2@huawei.com>
Change-Id: I999fd3a6711aff0762ddfe6699273f1947413efc
Signed-off-by: Nl00520400 <linshuqing2@huawei.com>
上级 6738aa51
...@@ -10,3 +10,7 @@ ...@@ -10,3 +10,7 @@
- Hap包签名工具 - Hap包签名工具
- [Hap包签名工具开发指导](hapsigntool-guidelines.md) - [Hap包签名工具开发指导](hapsigntool-guidelines.md)
- 访问控制
- [访问控制开发概述](accesstoken-overview.md)
- [访问控制开发指导](accesstoken-guidelines.md)
# 访问控制开发指导
## 场景介绍
当应用申请的权限需要用户授权,即申请的权限为user_grant权限时,可以通过权限校验,判断当前调用者是否具备相应权限。
## 接口说明
接口的具体说明可以查阅[API参考](../reference/apis/js-apis-abilityAccessCtrl.md)
| 接口名 | 描述 |
| ------------------------------------------------------------ | ---------------- |
| verifyAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStatus&gt; | 校验应用是否授予权限,使用Promise方式异步返回结果。 |
## 开发步骤
对访问者进行权限校验的开发步骤为:
1. 获取调用者的身份标识: tokenId
2. 识别需要校验的权限: permissionNameUser
3. 对当前调用者进行权限校验
代码示例如下:
```js
import {describe, beforeEach, afterEach, it, expect} from 'deccjsunit/index'
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'
import bundle from '@ohos.bundle'
var permissionNameUser = "ohos.permission.ALPHA";
var bundleFlag = 0;
var tokenID = undefined;
var userID = 100;
var appInfo = await bundle.getApplicationInfo('ohos.acts.security.access_token.normal', bundleFlag, userID);
tokenID = appInfo.accessTokenId;
console.log("AccessTokenTest accessTokenId:" + appInfo.accessTokenId + ", name:" + appInfo.name
+ ", bundleName:" + appInfo.bundleName)
var atManager = abilityAccessCtrl.createAtManager();
var result = await atManager.verifyAccessToken(tokenID, permissionNameUser);
if (result == abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) {
// 执行操作
} else {
// 申请动态授权,使用接口:requestPermissionsFromUser
}
```
> **说明:**
动态授权申请接口的使用详见[API参考](../reference/apis/js-apis-ability-context.md)
\ No newline at end of file
# 访问控制开发指南
## 功能简介
ATM(AccessTokenManager)是OpenHarmony上基于AccessToken构建的统一的应用权限管理能力。
当前,ATM模块对三方应用提供了权限校验功能,三方应用可以检查当前访问者是否具有所需的权限。
## 基本概念
当前,ATM提供的应用权限校验功能是基于统一管理的TokenID(Token identity)。
- TokenID:32bits的设备内唯一标识符,用于标识每个应用的Accestoken信息。
- Accestoken信息:主要包括应用身份标识APPID、用户ID、应用分身索引、应用APL(Ability Privilege Level)、应用权限信息等。
## 约束与限制
- 三方应用不允许自定义权限,系统权限定义信息详见[权限定义信息](https://gitee.com/openharmony/resources/blob/master/systemres/main/config.json)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册