页面白名单和组件白名单是干什么的?
想象一下你有一间魔法房子(即微信小程序),里面有很多房间(页面)和玩具(组件)。为了确保安全,你可能希望只有特定的人(用户)能够进入某些房间或玩某些玩具。这就是页面白名单和组件白名单的作用——它们定义了哪些页面或组件可以被访问或使用。
- 页面白名单:指定哪些页面可以在特定条件下被访问。
- 组件白名单:指定哪些自定义组件可以在特定条件下被使用。
使用场景
-
页面白名单:
- 当你需要限制某些页面只能由特定用户访问时,比如管理员专用页面。
- 在多版本小程序中,新功能页面可能只对部分用户开放测试。
-
组件白名单:
- 如果你开发了一个高级组件,但只想让某些页面或特定情况下使用它。
- 控制不同版本的小程序中哪些组件可用,以保持兼容性。
底层原理
- 配置文件控制:通过
app.json
或者其他配置文件来定义白名单规则。 - 权限验证:当用户尝试访问某个页面或使用某个组件时,系统会检查当前用户的权限是否符合白名单的要求。
- 动态加载:对于不在白名单内的资源,默认情况下不会被加载或显示给用户。
实例代码讲解
我们将创建一个简单的例子,展示如何实现页面白名单。假设我们有一个管理后台页面,只有管理员才能访问。
1. 配置页面白名单
首先,在项目的 app.json
文件中添加 permission
字段来定义页面白名单:
{
"pages": [
"pages/index/index",
"pages/admin/admin"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff&#