Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
a9704512
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a9704512
编写于
5月 11, 2023
作者:
zyjhandsome
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化《向用户申请授权》指南示例代码
Signed-off-by:
zyjhandsome
<
zyjhandsome@126.com
>
上级
6952d616
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
11 deletion
+10
-11
zh-cn/application-dev/security/accesstoken-guidelines.md
zh-cn/application-dev/security/accesstoken-guidelines.md
+10
-11
未找到文件。
zh-cn/application-dev/security/accesstoken-guidelines.md
浏览文件 @
a9704512
...
...
@@ -13,11 +13,11 @@
## 配置文件权限声明
应用需要在
工程配置文件中,对需要的权限逐个声明,未在配置文件中声明的权限,应用将无法获得授权。OpenHarmony提供了两种应用模型,分别为FA模型和Stage模型,更多信息可以参考
[
应用模型解读
](
../application-models/application-model-description.md
)
。不同的应用模型的应用包结构不同,所使用的配置文件不同
。
应用需要在
项目的配置文件中逐个声明所需的权限,否则应用将无法获取授权
。
> **说明**:
>
> 应用
默认的APL等级为`normal`,当应用需要申请`system_basic`和`system_core`等级时,除了在配置文件中进行权限
声明之外,还需要通过[ACL方式](#acl方式声明)进行声明使用。
> 应用
在申请`system_basic`和`system_core`等级权限时,需要提升权限等级,因为应用默认的权限等级为`normal`。如果应用需要申请高于默认等级的权限,除了在配置文件中进行
声明之外,还需要通过[ACL方式](#acl方式声明)进行声明使用。
配置文件标签说明如下表所示。
...
...
@@ -100,9 +100,9 @@
## ACL方式声明
应用在申请
`system_basic`
和
`system_core`
等级权限时,高于应用默认的
`normal`
等级。当应用需要申请权限项的等级高于应用默认的等级时,需要通过ACL方式进行
声明使用。
当应用需要申请
`system_basic`
和
`system_core`
等级的权限时,比应用默认权限等级
`normal`
更高。如果需要申请的权限等级高于应用默认的等级,需要使用ACL方式
声明使用。
例如
应用在申请访问用户公共目录下音乐类型的文件,需要申请
` ohos.permission.WRITE_AUDIO`
权限,该权限为
`system_basic`
等级;以及应用在申请截取屏幕图像功能,该权限为
`system_core`
等级,需要申请
` ohos.permission.CAPTURE_SCREEN`
权限。此时
需要将相关权限项配置到
[
HarmonyAppProvision配置文件
](
app-provision-structure.md
)
的
`acl`
字段中。
例如
,如果应用需要访问用户公共目录中的音乐文件,需要申请
`ohos.permission.WRITE_AUDIO`
权限,该权限属于
`system_basic`
等级。如果应用需要截取屏幕图像,则需要申请
`ohos.permission.CAPTURE_SCREEN`
权限,该权限属于
`system_core`
等级。此时,
需要将相关权限项配置到
[
HarmonyAppProvision配置文件
](
app-provision-structure.md
)
的
`acl`
字段中。
```
json
{
...
...
@@ -110,7 +110,7 @@
"acls"
:{
"allowed-acls"
:[
"ohos.permission.WRITE_AUDIO"
,
"ohos.permission.CAPTURE_SCREEN"
"ohos.permission.CAPTURE_SCREEN"
]
}
}
...
...
@@ -131,7 +131,7 @@
以允许应用读取日历信息为例进行说明。
1.
申请
`ohos.permission.READ_CALENDAR`
权限,配置方式请参见
[
访问控制授权申请
](
#配置文件权限声明
)
。
1.
申请
`ohos.permission.READ_CALENDAR`
权限,配置方式请参见
[
配置文件权限声明
](
#配置文件权限声明
)
。
2.
校验当前是否已经授权。
...
...
@@ -152,14 +152,14 @@
let
appInfo
:
bundleManager
.
ApplicationInfo
=
bundleInfo
.
appInfo
;
tokenId
=
appInfo
.
accessTokenId
;
}
catch
(
err
)
{
console
.
error
(
`
getBundleInfoForSelf failed, c
ode is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`
Failed to get bundle info for self. C
ode is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
}
// 校验应用是否被授予权限
try
{
grantStatus
=
await
atManager
.
checkAccessToken
(
tokenId
,
permission
);
}
catch
(
err
)
{
console
.
error
(
`
checkAccessToken failed, c
ode is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`
Failed to check access token. C
ode is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
}
return
grantStatus
;
...
...
@@ -214,8 +214,7 @@
}
// 授权成功
}).
catch
((
err
)
=>
{
console
.
error
(
`requestPermissionsFromUser failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
})
console
.
error
(
`Failed to request permissions from user. Code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
// ...
}
...
...
@@ -249,7 +248,7 @@
}
// 授权成功
}).
catch
((
err
)
=>
{
console
.
error
(
`
requestPermissionsFromUser failed, c
ode is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`
Failed to request permissions from user. C
ode is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
})
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录