• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#  	访问控制管理
2
3> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
4> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
5
6## 导入模块
7
8```js
9import abilityAccessCtrl from '@ohos.abilityAccessCtrl'
10```
11
12## abilityAccessCtrl.createAtManager
13
14createAtManager(): AtManager
15
16访问控制管理:获取访问控制模块对象。
17
18**系统能力:** SystemCapability.Security.AccessToken
19
20
21**返回值:**
22
23| 类型 | 说明 |
24| -------- | -------- |
25| [AtManager](#atmanager) | 获取访问控制模块的实例。 |
26
27**示例:**
28
29```
30var AtManager = abilityAccessCtrl.createAtManager();
31```
32
33## AtManager
34
35管理访问控制模块的实例。
36
37### verifyAccessToken
38
39verifyAccessToken(tokenID: number, permissionName: string): Promise<GrantStatus>
40
41校验应用是否授予权限,使用Promise方式异步返回结果。
42
43**系统能力:** SystemCapability.Security.AccessToken
44
45**参数:**
46
47| 参数名   | 类型                 | 必填 | 说明                                       |
48| -------- | -------------------  | ---- | ------------------------------------------ |
49| tokenID   |  number   | 是   | 要校验的目标应用的身份标识。              |
50| permissionName | string | 是   | 需要校验的权限名称。 |
51
52**返回值:**
53
54| 类型          | 说明                                |
55| :------------ | :---------------------------------- |
56| Promise<GrantStatus> | Promise实例,用于获取异步返回的授权状态结果。 |
57
58**示例:**
59
60```
61var AtManager = abilityAccessCtrl.createAtManager();
62let tokenID = 0;
63let promise = AtManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
64promise.then(data => {
65    console.log(`promise: data->${JSON.stringify(data)}`);
66});
67```
68
69### grantUserGrantedPermission
70
71grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlags: number): Promise<number>
72
73授予应用user grant权限,使用Promise方式异步返回结果。
74
75此接口为系统接口。
76
77**需要权限:** ohos.permission.GRANT_SENSITIVE_PERMISSIONS
78
79**系统能力:** SystemCapability.Security.AccessToken
80
81**参数:**
82
83| 参数名    | 类型                | 必填 | 说明                                                         |
84| --------- | ------------------- | ---- | ------------------------------------------------------------ |
85| tokenID      | number              | 是   | 目标应用的身份标识。            |
86| permissionName | string              | 是   | 被授予的权限名称。 |
87| permissionFlags  | number | 是   | 授权选项<br>- 0表示权限未经过用户主动设置。<br>- 1表示当次用户若选择禁止该权限,下次权限弹窗仍可以弹出申请用户授权。<br>- 2表示当次用户若选择禁止该权限,下次不会再弹出权限弹窗,需要用户在setting的权限管理中进行授权。<br>- 4表示当次权限设置为系统授权,用户不可更改这个权限授权状态。 |
88
89**返回值:**
90
91| 类型          | 说明                                |
92| :------------ | :---------------------------------- |
93| Promise&lt;number&gt; | Promise实例,用于获取异步返回的授权操作结果。 |
94
95**示例:**
96
97```
98var AtManager = abilityAccessCtrl.createAtManager();
99let tokenID = 0;
100let permissionFlags = 1;
101let promise = AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlags);
102promise.then(data => {
103    console.log(`promise: data->${JSON.stringify(data)}`);
104});
105```
106
107
108
109### grantUserGrantedPermission
110
111grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlags: number, callback: AsyncCallback&lt;number&gt;): void
112
113授予应用user grant权限,使用callback回调异步返回结果。
114
115此接口为系统接口。
116
117**需要权限:** ohos.permission.GRANT_SENSITIVE_PERMISSIONS
118
119**系统能力:** SystemCapability.Security.AccessToken
120
121**参数:**
122
123| 参数名    | 类型                | 必填 | 说明                          |
124| --------- | ------------------- | ---- | ------------------------------------------------------------ |
125| tokenID      | number              | 是   | 目标应用的身份标识。           |
126| permissionName | string              | 是   | 被授予的权限名称。 |
127| permissionFlags  | number | 是   | 授权选项<br>- 0表示权限未经过用户主动设置。<br>- 1表示当次用户若选择禁止该权限,下次权限弹窗仍可以弹出申请用户授权。<br>- 2表示当次用户若选择禁止该权限,下次不会再弹出权限弹窗,需要用户在setting的权限管理中进行授权。<br>- 4表示当次权限设置为系统授权,用户不可更改这个权限授权状态。 |
128| callback | AsyncCallback&lt;number&gt; | 是 | 检查授予应用user grant权限的操作结果同步的回调。 |
129
130**示例:**
131
132```
133var AtManager = abilityAccessCtrl.createAtManager();
134let tokenID = 0;
135let permissionFlags = 1;
136AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",permissionFlags, data => {
137    console.log(`callback: data->${JSON.stringify(data)}`);
138});
139```
140
141### revokeUserGrantedPermission
142
143revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlags: number): Promise&lt;number&gt;
144
145撤销应用user grant权限,使用Promise方式异步返回结果。
146
147此接口为系统接口。
148
149**需要权限:** ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
150
151**系统能力:** SystemCapability.Security.AccessToken
152
153**参数:**
154
155| 参数名    | 类型                | 必填 | 说明                                                         |
156| --------- | ------------------- | ---- | ------------------------------------------------------------ |
157| tokenID      | number              | 是   | 目标应用的身份标识。            |
158| permissionName | string              | 是   | 被撤销的权限名称。 |
159| permissionFlags  | number | 是   | 授权选项<br>- 0表示权限未经过用户主动设置。<br>- 1表示当次用户若选择禁止该权限,下次权限弹窗仍可以弹出申请用户授权。<br>- 2表示当次用户若选择禁止该权限,下次不会再弹出权限弹窗,需要用户在setting的权限管理中进行授权。<br>- 4表示当次权限设置为系统授权,用户不可更改这个权限授权状态。 |
160
161**返回值:**
162
163| 类型          | 说明                                |
164| :------------ | :---------------------------------- |
165| Promise&lt;number&gt; | Promise实例,用于获取异步返回的授权操作结果。 |
166
167**示例:**
168
169```
170var AtManager = abilityAccessCtrl.createAtManager();
171let tokenID = 0;
172let permissionFlags = 1;
173let promise = AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlags);
174promise.then(data => {
175    console.log(`promise: data->${JSON.stringify(data)}`);
176});
177```
178
179### revokeUserGrantedPermission
180
181revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlags: number, callback: AsyncCallback&lt;number&gt;): void
182
183撤销应用user grant权限,使用callback回调异步返回结果。
184
185此接口为系统接口。
186
187**需要权限:** ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
188
189**系统能力:** SystemCapability.Security.AccessToken
190
191**参数:**
192
193| 参数名    | 类型                | 必填 | 说明                          |
194| --------- | ------------------- | ---- | ------------------------------------------------------------ |
195| tokenID      | number              | 是   | 目标应用的身份标识。            |
196| permissionName | string              | 是   | 被撤销的权限名称。 |
197| permissionFlags  | number | 是   | 授权选项<br>- 0表示权限未经过用户主动设置。<br>- 1表示当次用户若选择禁止该权限,下次权限弹窗仍可以弹出申请用户授权。<br>- 2表示当次用户若选择禁止该权限,下次不会再弹出权限弹窗,需要用户在setting的权限管理中进行授权。<br>- 4表示当次权限设置为系统授权,用户不可更改这个权限授权状态。 |
198| callback | AsyncCallback&lt;number&gt; | 是 | 检查撤销应用user grant权限的操作结果同步的回调。 |
199
200**示例:**
201
202```
203var AtManager = abilityAccessCtrl.createAtManager();
204let tokenID = 0;
205let permissionFlags = 1;
206AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",permissionFlags, data => {
207    console.log(`callback: data->${JSON.stringify(data)}`);
208});
209```
210
211### getPermissionFlags
212
213getPermissionFlags(tokenID: number, permissionName: string): Promise&lt;number&gt;
214
215获取指定应用的指定权限的flag,使用Promise方式异步返回结果。
216
217此接口为系统接口。
218
219**需要权限:** ohos.permission.GET_SENSITIVE_PERMISSIONS or GRANT_SENSITIVE_PERMISSIONS or REVOKE_SENSITIVE_PERMISSIONS
220
221**系统能力:** SystemCapability.Security.AccessToken
222
223**参数:**
224
225| 参数名    | 类型                | 必填 | 说明                          |
226| --------- | ------------------- | ---- | ------------------------------------------------------------ |
227| tokenID      | number              | 是   | 目标应用的身份标识。            |
228| permissionName | string              | 是   | 查询的权限名称。 |
229
230**返回值:**
231
232| 类型          | 说明                                |
233| :------------ | :---------------------------------- |
234| Promise&lt;number&gt; | Promise实例,用于获取异步返回的查询结果。 |
235
236**示例:**
237
238```
239var AtManager = abilityAccessCtrl.createAtManager();
240let tokenID = 0;
241let promise = AtManager.getPermissionFlags(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
242promise.then(data => {
243    console.log(`promise: data->${JSON.stringify(data)}`);
244});
245```
246
247### GrantStatus
248
249表示授权状态的枚举。
250
251**系统能力:** 以下各项对应的系统能力均为SystemCapability.Security.AccessToken
252
253| 名称                          | 默认值                  | 描述                    |
254| ----------------------------- | ---------------------- | -----------------------  |
255| PERMISSION_DENIED             | -1                     | 表示未授权。             |
256| PERMISSION_GRANTED            | 0                      | 表示已授权。             |