提交 21f4bcec 编写于 作者: D DCloud_LXH

feat: 处理 (/uniCloud/*) 形式的链接

上级 f2115edf
......@@ -195,7 +195,7 @@ uni云端一体生态的内容太多,让我们抽丝剥茧、归纳分类,
**1. 官方维护的插件**
- uni-id:不用再开发用户系统。用户注册、登录(含社交登录、短信验证码登录、App一键登录)、修改或重置密码、token管理、图形验证码、RBAC权限角色系统...所有与用户相关的,不管前端还是云端,代码都是现成的。[详见](/uniCloud/uni-id/summary)
- uni-id:不用再开发用户系统。用户注册、登录(含社交登录、短信验证码登录、App一键登录)、修改或重置密码、token管理、图形验证码、RBAC权限角色系统...所有与用户相关的,不管前端还是云端,代码都是现成的。[详见](./uni-id/summary)
- uni-pay:不管微信还是支付宝,不管App、微信小程序、还是支付宝小程序,不管前端还是服务端,一切都现成的,拿来即用。[详见](unipay.md)
- uni-starter:云端一体应用快速开发基本项目模版,实现快速搭建一款应用。它集成了很多通用的功能,比如登录注册、头像、设置、拦截器、banner...[详见](https://ext.dcloud.net.cn/plugin?id=5057)
- uni-admin:全端可用的admin后台。自带用户管理、权限管理、角色管理、菜单管理、业务图表统计。更有众多admin插件,比如cms插件、push、banner管理插件、App升级管理插件...[详见](admin.md)
......@@ -276,14 +276,14 @@ uni-app提供了`<unicloud-db>`组件(代码块触发键是udb),在前端
比如uniCloud的云数据库有个user表,里面有字段id、name,查询id=1的用户数据,把名字显示在界面上,写法如下:
```html
<template>
<view>
<unicloud-db v-slot:default="{data, loading, error, options}" collection="user" field="name" :getone="true" where="id=='1'">
<view>
{{ data.name}}
</view>
</unicloud-db>
</view>
<template>
<view>
<unicloud-db v-slot:default="{data, loading, error, options}" collection="user" field="name" :getone="true" where="id=='1'">
<view>
{{ data.name}}
</view>
</unicloud-db>
</view>
</template>
```
......@@ -335,7 +335,7 @@ async function addTodo () {
const res = await todo.add('title demo', 'content demo') //导入云对象后就可以直接调用该对象的方法了,注意使用异步await
console.log("add成功")
} catch (e) {
// 符合uniCloud响应体规范 https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=resformat,自动抛出此错误
// 符合uniCloud响应体规范 https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=resformat,自动抛出此错误
console.log(e.errMsg)
}
}
......
......@@ -146,15 +146,15 @@ uni-admin的`一键部署`,会自动上传云函数、创建数据库,并将
```bash
┌── cloudfunctions # 云函数
├── common
├── common
│ │── admin-icons.css # admin-icons 图标样式
│ │── theme.scss # 换肤功能样式
│ │── uni.css # 公共样式
│ └── uni-icons.css # icon样式
├── components # 自定义组件
├── js_sdk # js sdk
│ └── uni-stat
│ └── util.js # uni统计相关工具方法
│ └── uni-stat
│ └── util.js # uni统计相关工具方法
├── pages # 页面
│ │── index # 首页
│ │── login # 登录页
......@@ -171,71 +171,71 @@ uni-admin的`一键部署`,会自动上传云函数、创建数据库,并将
│ │ └── fieldsMap.js # 字段配置(下同)
│ │── device # 设备统计
│ │ │── activity # 渠道/场景分析
│ │ │ │── activity.vue
│ │ │ └── fieldsMap.js
│ │ │ │── activity.vue
│ │ │ └── fieldsMap.js
│ │ │── comparison # 平台对比
│ │ │ │── comparison.vue
│ │ │ └── fieldsMap.js
│ │ │ │── comparison.vue
│ │ │ └── fieldsMap.js
│ │ │── overview # 今日概览
│ │ │ │── overview.vue
│ │ │ └── fieldsMap.js
│ │ │ │── overview.vue
│ │ │ └── fieldsMap.js
│ │ │── retention # 留存
│ │ │ │── retention.vue
│ │ │ └── fieldsMap.js
│ │ │ │── retention.vue
│ │ │ └── fieldsMap.js
│ │ │── stickiness # 粘性
│ │ │ │── stickiness.vue
│ │ │ └── fieldsMap.js
│ │ │ │── stickiness.vue
│ │ │ └── fieldsMap.js
│ │ └── trend # 趋势分析
│ │ │── trend.vue
│ │ └── fieldsMap.js
│ │ │── trend.vue
│ │ └── fieldsMap.js
│ │── error # 错误分析
│ │ │── error.vue
│ │ └── fieldsMap.js
│ │ │── error.vue
│ │ └── fieldsMap.js
│ │── event # 事件分析
│ │ │── event.vue
│ │ └── fieldsMap.js
│ │ │── event.vue
│ │ └── fieldsMap.js
│ │── index # 统计首页
│ │ │── index.vue
│ │ └── fieldsMap.js
│ │ │── index.vue
│ │ └── fieldsMap.js
│ │── page-ent # 入口页
│ │ │── page-ent.vue
│ │ └── fieldsMap.js
│ │ │── page-ent.vue
│ │ └── fieldsMap.js
│ │── page-res # 受访页
│ │ │── page-res.vue
│ │ └── fieldsMap.js
│ │ │── page-res.vue
│ │ └── fieldsMap.js
│ │── scene # 场景值(小程序)
│ │ │── scene.vue
│ │ └── fieldsMap.js
│ │ │── scene.vue
│ │ └── fieldsMap.js
│ └── user # 用户统计
│ │── activity # 渠道/场景分析
│ │ │── activity.vue
│ │ └── fieldsMap.js
│ │ │── activity.vue
│ │ └── fieldsMap.js
│ │── comparison # 平台对比
│ │ │── comparison.vue
│ │ └── fieldsMap.js
│ │ │── comparison.vue
│ │ └── fieldsMap.js
│ │── overview # 今日概览
│ │ │── overview.vue
│ │ └── fieldsMap.js
│ │ │── overview.vue
│ │ └── fieldsMap.js
│ │── retention # 留存
│ │ │── retention.vue
│ │ └── fieldsMap.js
│ │ │── retention.vue
│ │ └── fieldsMap.js
│ │── stickiness # 粘性
│ │ │── stickiness.vue
│ │ └── fieldsMap.js
│ │ │── stickiness.vue
│ │ └── fieldsMap.js
│ └── trend # 趋势分析
│ │── trend.vue
│ └── fieldsMap.js
│ │── trend.vue
│ └── fieldsMap.js
├── static
├── store # vuex
├── windows
├── windows
│ │── component # 项目中使用的组件
│ │── leftWindow.vue # 左侧窗口(菜单栏)
│ └── topWindow.vue # 顶部窗口(导航栏)
├── admin.config.js # 系统配置(配置导航,菜单等)
├── App.vue
├── main.js
├── mainfest.json
├── pages.json
├── App.vue
├── main.js
├── mainfest.json
├── pages.json
├── postcss.config.js # postcss 配置(浏览器兼容性)
└── uni.scss
```
......@@ -486,11 +486,11 @@ uni统计深入uni-app和uniCloud框架底层,提供了众多其他统计平
- 自动捕获js错误,上报app端原生崩溃日志
- 兼容uni-app渠道包打包体系,自动识别渠道包
- 基于uni-id账户体系,自动出具注册用户(不是设备)的新增、活跃、留存报表
- 兼容uniCloud [opendb规范](/uniCloud/opendb),从服务器端统计各项数据
- 兼容uniCloud [opendb规范](./opendb),从服务器端统计各项数据
**7. 开放生态**
uni统计开源且基于[uni-admin](/uniCloud/admin)的插件规范提供了插件机制,会有更多插件作者提供各种丰富的统计插件(如电商统计、内容统计等)。见[插件市场](https://ext.dcloud.net.cn/?cat1=7&cat2=74&type=HotList)
uni统计开源且基于[uni-admin](./admin)的插件规范提供了插件机制,会有更多插件作者提供各种丰富的统计插件(如电商统计、内容统计等)。见[插件市场](https://ext.dcloud.net.cn/?cat1=7&cat2=74&type=HotList)
## 群发短信@batch-sms <Badge text="uni-admin 2.1.0+" />
......
......@@ -13,7 +13,7 @@
一个最简单的云函数只需要这个入口js文件,在里面编写代码即可。当然也可以在这个js中require该云函数目录下的其他js、json文件。
云函数的配置文件和 npm规范 相同,在云函数目录下可新建一个 package.json 来存放配置。uniCloud云函数扩展了 package.json,增加了一些特有的配置项。[详见](/uniCloud/cf-functions?id=packagejson)
云函数的配置文件和 npm规范 相同,在云函数目录下可新建一个 package.json 来存放配置。uniCloud云函数扩展了 package.json,增加了一些特有的配置项。[详见](./cf-functions?id=packagejson)
云函数启动后实例会保留一段时间(如15分钟),超过保留期后若该云函数一直没有被再调用,那这个实例会被释放。所以云函数有冷启动的概念。不过由于js实例的启动要比php和java更快,所以js更适合serverless方式。
......@@ -29,10 +29,10 @@
云函数有若干子概念,包括 普通云函数、云对象、公共模块、clientDB的action云函数、uniCloud扩展库。
- 云函数:通过传统json接口方式和客户端通信,客户端使用`uniCloud.callfunction("")`调用云函数
- 云对象:是通过前端导入对象来操作的,客户端使用`uniCloud.importObject("")`导入云对象。详见[云对象](/uniCloud/cloud-obj)
- 公共模块:用于不同的云函数/云对象,抽取和共享相同代码,详见[公共模块文档](/uniCloud/cf-functions?id=公共模块)
- action云函数(不推荐使用):为了弥补clientDB客户端直接操作数据库的局限而设计的,详见[clientDB action文档](/uniCloud/clientdb?id=action)。从HBuilderX 3.6.11开始,推荐使用[数据库触发器](jql-schema-ext.md)替代action云函数。
- uniCloud扩展库:为了裁剪和控制云函数体积而设计的,一些不太常用的功能比如Redis,独立为可选扩展库,避免增大每个云函数的体积,详见[uniCloud扩展库](/uniCloud/cf-functions?id=扩展库)
- 云对象:是通过前端导入对象来操作的,客户端使用`uniCloud.importObject("")`导入云对象。详见[云对象](./cloud-obj)
- 公共模块:用于不同的云函数/云对象,抽取和共享相同代码,详见[公共模块文档](./cf-functions?id=公共模块)
- action云函数(不推荐使用):为了弥补clientDB客户端直接操作数据库的局限而设计的,详见[clientDB action文档](./clientdb?id=action)。从HBuilderX 3.6.11开始,推荐使用[数据库触发器](jql-schema-ext.md)替代action云函数。
- uniCloud扩展库:为了裁剪和控制云函数体积而设计的,一些不太常用的功能比如Redis,独立为可选扩展库,避免增大每个云函数的体积,详见[uniCloud扩展库](./cf-functions?id=扩展库)
HBuilderX中uniCloud项目的云函数均在项目的`uniCloud/cloudfunctions`目录下,目录结构如下:
......@@ -62,7 +62,7 @@ uniCloud体系里,客户端和服务端的云函数通信,有4种方式:
| |传统的restful方式|callfunction方式|云对象方式|clientDB方式|
|:-:|:-:|:-:|:-:|:-:|
|简述 |通过配置[云函数URL化](/uniCloud/http),把云函数转为传统的http链接 |云函数默认并不自带http链接|把callfunction的函数式调用,升级为模块化的对象调用|客户端直接操作云数据库|
|简述 |通过配置[云函数URL化](./http),把云函数转为传统的http链接 |云函数默认并不自带http链接|把callfunction的函数式调用,升级为模块化的对象调用|客户端直接操作云数据库|
|前端调用方式|传统ajax|uni-app客户端通过`uniCloud.callFunction(functionname)`来调用云函数|uni-app客户端通过`uniCloud.importObject(objectname)`导入一个云对象,直接使用这个对象的方法 |uni-app客户端通过`<uniCloud-db>`组件或`uniCloud.database()` API来访问uniCloud数据库。也支持搭配action云函数追加服务器逻辑 |
|适用场景 |http链接需要自己注册域名。如果前端是uni-app,则不推荐使用URL化。如果是非uni-app的系统需要访问云函数,只能使用URL化 |相比云函数URL,callfunction更加安全、更serverless,不暴露域名和ip,不怕攻击,也无需注册域名|uni-app 3.4起支持。相比callfunction方式。代码更加精简、逻辑更加清晰、开发更加高效 |如果uni-app前端发起的服务器请求目的主要是查询或操作数据库,则推荐使用clientDB方式|
......@@ -178,7 +178,7 @@ exports.main = async (event, context) => {
```
由于篇幅较长,需另见文档[云函数callfunction方式](/uniCloud/cf-callfunction)
由于篇幅较长,需另见文档[云函数callfunction方式](./cf-callfunction)
### 云函数URL化方式
......
......@@ -2,7 +2,7 @@
云函数内使用`console.log``console.info``console.warn``console.error`四种方式打印日志。
HBuilderX中查看日志的教程在 [快速上手章节](/uniCloud/quickstart?id=rundebug)
HBuilderX中查看日志的教程在 [快速上手章节](./quickstart?id=rundebug)
云函数日志会在云端保存7天。
......
......@@ -72,7 +72,7 @@ clientDB调用流程参考:[JQL图解](jql.md#flow-chart)
js API可以执行所有数据库操作。`<unicloud-db>`组件是js API的再封装,进一步简化查询等常用数据库操作的代码量。
- 在HBuilderX 3.0+,`<unicloud-db>`组件已经内置,可以直接使用。文档另见:[`<unicloud-db>`组件](/uniCloud/unicloud-db)
- 在HBuilderX 3.0+,`<unicloud-db>`组件已经内置,可以直接使用。文档另见:[`<unicloud-db>`组件](./unicloud-db)
以下文章重点介绍`clientDB`的js API。至于组件的用法,另见[文档](unicloud-db.md)
......
......@@ -139,7 +139,7 @@ async function addToDo () {
以上传统开发需要68行代码,对比云对象的33行代码,不但工作量大,而且逻辑也不如云对象清晰。
_注:以上例子仅用于方便初学者理解。实际开发中对于简单的数据库操作,使用[clientDB](/uniCloud/clientdb)在前端直接操作数据库是更简单、代码更少的方案,都不需要写云端代码。
_注:以上例子仅用于方便初学者理解。实际开发中对于简单的数据库操作,使用[clientDB](./clientdb)在前端直接操作数据库是更简单、代码更少的方案,都不需要写云端代码。
总结下云对象带来的好处:
1. 更清晰的逻辑
......@@ -358,7 +358,7 @@ module.exports = {
### 获取客户端token@get-uni-id-token
云对象自动管理`uni-id`的token。开发者无需手动管理。如果不了解`uni-id`,请[参考](/uniCloud/uni-id/summary)
云对象自动管理`uni-id`的token。开发者无需手动管理。如果不了解`uni-id`,请[参考](./uni-id/summary)
**接口形式**
......
......@@ -21,7 +21,7 @@ web控制台可以新建、删除服务空间,管理线上的服务空间资
**新建服务空间注意**
- 第一次创建腾讯云服务空间时会为用户创建腾讯云账号并跳转到腾讯云实名界面,等待实名认证审核之后可以开通服务空间。若腾讯云实名认证提示身份证下已创建过多账户,则需要在腾讯云官网注销不用的账户。[详见](/uniCloud/faq?id=tencent-exceed-account-limit)
- 第一次创建腾讯云服务空间时会为用户创建腾讯云账号并跳转到腾讯云实名界面,等待实名认证审核之后可以开通服务空间。若腾讯云实名认证提示身份证下已创建过多账户,则需要在腾讯云官网注销不用的账户。[详见](../faq?id=tencent-exceed-account-limit)
- 创建服务空间可能需要几十秒的时间,可以在web控制台查看是否创建完成。
## 多人协作@collaboration
......@@ -41,9 +41,9 @@ web控制台可以新建、删除服务空间,管理线上的服务空间资
3. 输入协作者邮箱并点击`搜索`,下方会出现搜索到的结果,确认无误后点击`添加成员`进行添加
![成员管理](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/space-actor-search.png)
4. 下方`成员列表`中可以查看以及移除已添加的协作者
![成员列表](https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/space-actor-list.png)
**注意**
......@@ -62,7 +62,7 @@ web控制台可以新建、删除服务空间,管理线上的服务空间资
### 多应用共用服务空间@multi-app
随着用户使用uniCloud开发的项目越来越多, 部分用户遇到了新的问题。
随着用户使用uniCloud开发的项目越来越多, 部分用户遇到了新的问题。
两个、多个项目想共用一个云服务空间,比如一个系统,有用户端项目、管理admin项目,两个项目需要公共服务空间。还有司机端、乘客端、用户端、骑手端....很多类似的问题。
......
......@@ -6,10 +6,10 @@
简单来说,uniCloud和微信小程序云开发、支付宝小程序云开发一样稳定健壮,但有更多优势:
- 跨平台。不管你在uniCloud里选择了阿里还是腾讯的serverless,均可以跨uni-app的全端使用。从pc到h5,从Android到iOS,以及各家小程序快应用,十几个平台全端支持
- uniCloud提供了`clientDB`神器,减少90%的服务器开发工作量,且保障数据安全。[详见](/uniCloud/database)
- uniCloud提供了[uni-id](uni-id/summary.md)[uniPay](/uniCloud/unipay)等重要框架,大幅减少开发者的相应功能开发量。
- uniCloud提供了`clientDB`神器,减少90%的服务器开发工作量,且保障数据安全。[详见](./database)
- uniCloud提供了[uni-id](uni-id/summary.md)[uniPay](./unipay)等重要框架,大幅减少开发者的相应功能开发量。
- uniCloud提供了[uni-starter](https://ext.dcloud.net.cn/plugin?id=5057),客户端开发工作量大幅减少。
- uniCloud提供了[uniCloud admin](/uniCloud/admin),管理端开发工作量大幅减少。
- uniCloud提供了[uniCloud admin](./admin),管理端开发工作量大幅减少。
- uniCloud提供了[schema2code](schema2code.md),只需编制数据库schema文件,用户端和管理端的数据列表、分页、搜索、详情查看、修改、删除,全套代码均能自动生成。
- 更易学。uniCloud提供了`JQL`查询语言,比SQL和MongoDB的查询语法更简单易掌握,尤其是联表查询非常简单。[详见](https://uniapp.dcloud.io/uniCloud/database?id=jsquery)
- 更完善的工具链。前端uni-app、云端uniCloud、还有ide端的HBuilderX,互相紧密搭配,打造闭环的优秀开发体验
......@@ -288,7 +288,7 @@ exports.main = async function(event){
### 授权其他用户访问服务空间@collaborator
详见文档:[服务空间的多人协作](/uniCloud/concepts/space?id=collaboration)
详见文档:[服务空间的多人协作](./concepts/space?id=collaboration)
### 如何使用promise/async/await@promise
......
......@@ -41,7 +41,7 @@ sequenceDiagram
```
- 如果您使用uni-id,那么uni-id-pages已经帮您内置好相关功能,前端页面和云端逻辑均已写好,安全、无需开发、拿来就用。[详见](/uniCloud/uni-id/summary.md#frv)
- 如果您使用uni-id,那么uni-id-pages已经帮您内置好相关功能,前端页面和云端逻辑均已写好,安全、无需开发、拿来就用。[详见](../uni-id/summary.md#frv)
- 如果您的业务系统不在uniCloud上,那么需要在上述流程图中加一个原业务服务器,由云函数和原业务服务器进行token校验、传递认证结果。
### 接口防刷
......@@ -53,7 +53,7 @@ sequenceDiagram
uni-app x的客户端API文档[另见](https://doc.dcloud.net.cn/uni-app-x/api/facial-recognition-verify.html)
#### 获取实人认证设备信息@get-meta-info
调用刷脸前通过客户端先获取设备信息,调用[uni.getFacialRecognitionMetaInfo](https://uniapp.dcloud.net.cn/api/plugins/facialRecognitionVerify.html)
调用刷脸前通过客户端先获取设备信息,调用[uni.getFacialRecognitionMetaInfo](https://uniapp.dcloud.net.cn/api/plugins/facialRecognitionVerify.html)
`const metaInfo = uni.getFacialRecognitionMetaInfo();`
......@@ -70,7 +70,7 @@ uni-app x的客户端API文档[另见](https://doc.dcloud.net.cn/uni-app-x/api/f
`uni.startFacialRecognitionVerify(OBJECT)`
**参数说明**
**参数说明**
| 参数 | 类型 | 是否必传 | 支持平台 | 描述 |
| --- | --- | --- | --- | --- |
......@@ -81,7 +81,7 @@ uni-app x的客户端API文档[另见](https://doc.dcloud.net.cn/uni-app-x/api/f
| fail | Function | 否 | App | 失败回调 |
| complete | Function | 否 | App | 完成回调 |
注: 颜色字符串格式为“#RRGGBB”,RRGGBB为十六进制字符串,如红色("#FF0000")
注: 颜色字符串格式为“#RRGGBB”,RRGGBB为十六进制字符串,如红色("#FF0000")
**返回值**
......@@ -92,7 +92,7 @@ uni-app x的客户端API文档[另见](https://doc.dcloud.net.cn/uni-app-x/api/f
| errMsg | String | 错误信息,详情见:[错误码](#err-code)|
| cause | Object| SDK返回的原始数据 (certifyId不为空时返回)|
**cause**
**cause**
| 字段名 | 类型 | 描述 |
| --- | --- | --- |
......@@ -118,7 +118,7 @@ uni.startFacialRecognitionVerify({
})
```
#### iOS平台自定义UI
#### iOS平台自定义UI
iOS平台不支持通过参数的方式修改刷脸页的提示文案,但可以通过自定义bundle文件的方式修改提示内容以及国际化信息
[APBToygerFacade.bundle文件下载](https://native-res.dcloud.net.cn/uni-app/file/APBToygerFacade.zip)
......@@ -133,9 +133,9 @@ iOS平台不支持通过参数的方式修改刷脸页的提示文案,但可
"APBToygerFacade:网络不给力"="网络异常";
```
此处文案修改后需要完整测试回归 UI 以及文案变化影响,以免影响用户体验。修改后的bundle文件配到项目根目录的 nativeResources -> ios -> Resources 路径下后打包即可,详情参照[iOS原生应用配置文件和资源](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-ios.html)
此处文案修改后需要完整测试回归 UI 以及文案变化影响,以免影响用户体验。修改后的bundle文件配到项目根目录的 nativeResources -> ios -> Resources 路径下后打包即可,详情参照[iOS原生应用配置文件和资源](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-ios.html)
**Android平台暂不支持自定义UI**
**Android平台暂不支持自定义UI**
### 云函数接口
......@@ -387,9 +387,9 @@ module.exports = {
|10020 |设备设置时间异常 |设备设置时间异常,仅iOS返回 |
### 注意事项
### 注意事项
- 为对抗攻击,实人认证SDK返回的错误原因比较模糊。
- 为对抗攻击,实人认证SDK返回的错误原因比较模糊。
- HBuilderX3.7.4+新增支持,标准基座可直接真机运行,打包或自定义基座需在“App模块配置”中勾选“FacialRecognitionVerify(实人认证)”(注意不是faceId)参考[详情](https://uniapp.dcloud.net.cn/tutorial/app-facialRecognitionVerify.html)
- App-Android平台要求**Android5**(API Leavel 21)及以上系统,App-iOS平台要求**iOS9**及以上系统
- App端使用实人认证SDK,需在隐私政策的三方SDK中添加实人认证功能描述,参考[详情](https://ask.dcloud.net.cn/article/39484#FacialRecognitionVerify)
......@@ -398,7 +398,7 @@ module.exports = {
### 非 uniCloud 业务使用@uni-frv-external
> HBuilderX 版本需大于3.7.6
>
>
> 非uniCloud的传统服务器,可通过本插件方便调用uni实人认证
如果您的业务没有部署在 uniCloud 上,可以通过 uni-frv-external 来实现实人认证功能。
......@@ -435,7 +435,7 @@ sequenceDiagram
#### 项目文件说明
```text
├── uni_modules 存放[uni_module](/uni_modules)规范的插件。
│ ├── uni-frv-external
│ ├── uni-frv-external
│ │ ├── changelog.md
│ │ ├── common 页面公共逻辑
│ │ │ ├── check-id-card.js 校验身份证号合法性
......@@ -443,9 +443,9 @@ sequenceDiagram
│ │ ├── components 公共组件
│ │ │ └── uni-frv-external-realname 实名认证组件
│ │ │ ├── face-verify-icon.svg 实名认证错误提示Icon
│ │ │ └── uni-frv-external-realname.vue
│ │ │ └── uni-frv-external-realname.vue
│ │ ├── package.json 包管理文件
│ │ ├── pages
│ │ ├── pages
│ │ │ └── common
│ │ │ └── webview 用于实现应用内浏览或打开《用户协议和隐私协议》URL链接页面
│ │ │ └── webview.vue
......@@ -707,16 +707,16 @@ uni-frv-external-co 只支持URL化方式访问,在调用之前需要在uniClo
**鉴权说明**
`uni-frv-external`提供的接口,默认开启了鉴权验证,在调用接口前需要配置`uni-cloud-secure`
请求鉴权能力由 `uni-cloud-s2s` 公共模块提供,了解 `uni-cloud-s2s` [详见](/uniCloud/uni-cloud-s2s.md)
请求鉴权能力由 `uni-cloud-s2s` 公共模块提供,了解 `uni-cloud-s2s` [详见](../uni-cloud-s2s.md)
支持以下两种认证方式,根据业务需求选择不同的认证方式
1. 携带connectCode认证;相比签名认证,省去了复杂的签名计算过程。 调用简单,但安全性较低。[详见](/uniCloud/uni-cloud-s2s.md#code)
2. 使用签名认证;调用接口时需要使用签名密钥对请求内容进行签名计算,并将签名添加至请求头传输给云函数进行签名验证,相比简易鉴权方式,安全性高,可防止接口参数被篡改。[详见](/uniCloud/uni-cloud-s2s.md#sign)
1. 携带connectCode认证;相比签名认证,省去了复杂的签名计算过程。 调用简单,但安全性较低。[详见](../uni-cloud-s2s.md#code)
2. 使用签名认证;调用接口时需要使用签名密钥对请求内容进行签名计算,并将签名添加至请求头传输给云函数进行签名验证,相比简易鉴权方式,安全性高,可防止接口参数被篡改。[详见](../uni-cloud-s2s.md#sign)
如在您的业务也在uniCloud并且需要签名请求认证,可以使用`uni-cloud-s2s`提供的`getSecureHeaders`方法生成签名请求头 [详见](/uniCloud/uni-cloud-s2s.md#sign-method-of-server)
如在您的业务也在uniCloud并且需要签名请求认证,可以使用`uni-cloud-s2s`提供的`getSecureHeaders`方法生成签名请求头 [详见](../uni-cloud-s2s.md#sign-method-of-server)
如果在uniCloud之外的场景中使用签名认证方式请求,参考[非云函数场景签名方法](/uniCloud/uni-cloud-s2s.md#sign-method-of-server)
如果在uniCloud之外的场景中使用签名认证方式请求,参考[非云函数场景签名方法](../uni-cloud-s2s.md#sign-method-of-server)
**获取认证ID(getCertifyId)**
......
## 简介
**本文档是腾讯云自定义登录的配套权限说明问题。uniCloud中并不推荐这种用法,[详见](/uniCloud/authentication)。**
**本文档是腾讯云自定义登录的配套权限说明问题。uniCloud中并不推荐这种用法,[详见](./authentication)。**
如需在前端直接删除云存储,那么为了数据安全,需要一套权限规则,开发者可以在uniCloud web控制台上自定义安全规则,限制**客户端**对云存储的访问权限。本文档主要介绍如何配置安全规则以及表达式的相关说明。
......
......@@ -1002,7 +1002,7 @@ enum支持3种数据格式来描述候选:
`resume`表中,有一个city字段,其合理的字段规则应该是从`opendb-city-china`表取值,
设置`enumType`为"tree",代表enum里的数据为树形结构,比如下面的例子,代表opendb-city-china表以getTree方式查询。在schema2code时,可自动生成多级级联选择组件,[详见](/uniCloud/schema2code?id=schema2picker)
设置`enumType`为"tree",代表enum里的数据为树形结构,比如下面的例子,代表opendb-city-china表以getTree方式查询。在schema2code时,可自动生成多级级联选择组件,[详见](./schema2code?id=schema2picker)
```json
{
"schema": {
......@@ -1270,9 +1270,9 @@ rule表达式里支持:
* 如果要连接外网,要调用[uniCloud.httpclient](cf-functions.md#id=httpclient)
* 如果要调用数据库,需使用云函数里操作数据库的方式,即不支持JQL,[详见](cf-database.md)
但是,在[schema2code](/uniCloud/schema?id=autocode)中,`扩展校验函数`也会被生成到前端页面的校验规则里。
但是,在[schema2code](./schema?id=autocode)中,`扩展校验函数`也会被生成到前端页面的校验规则里。
也就是说,如果使用[schema2code](/uniCloud/schema?id=autocode)生成前端页面,那么写`扩展校验函数`需要多一层注意。
也就是说,如果使用[schema2code](./schema?id=autocode)生成前端页面,那么写`扩展校验函数`需要多一层注意。
比如调用了uniCloud.httpclient这样在前端并不存在的API时,前端的表单校验会出错。
......@@ -1349,7 +1349,7 @@ errorMessage支持字符串,也支持json object。类型为object时,可定
**其他注意事项**
“数据库中某字段值不能在多条记录中重复”,这个需求一般不是在字段值域校验里实现,而是在数据库索引里配置该字段为唯一索引。[详见](/uniCloud/hellodb?id=dbindex)
“数据库中某字段值不能在多条记录中重复”,这个需求一般不是在字段值域校验里实现,而是在数据库索引里配置该字段为唯一索引。[详见](./hellodb?id=dbindex)
可以在web控制台配置索引,db_init.json也可以创建索引。注意如果数据库中多条记录中该字段已经有重复内容,那么设该字段为唯一索引时会报错,需先把重复数据去掉。
......@@ -1627,7 +1627,7 @@ forceDefaultValue属于数据校验的范畴,在数据写入时生效,但是
这样用户登录后,uniCloud会自动分析它的permission和role,在schema里编写的关于permission和role的限制也可以一一对应上,进行有效管理。
admin中创建权限、角色和用户授权,另见[文档](/uniCloud/admin?id=mutiladmin)
admin中创建权限、角色和用户授权,另见[文档](./admin?id=mutiladmin)
### 权限规则内的数据库查询get方法
......
......@@ -87,7 +87,7 @@ await uniPush.sendMessage(OBJECT)
|content_available|Number|否|0|0表示普通通知消息(默认为0);</br>1表示静默推送(无通知栏消息),静默推送时不需要填写其他参数。</br>苹果官方建议1小时最多推送3条静默消息|ios |
|open_url|string|否|无|填写该值将:强制push类型为“通知栏消息”,点击后系统浏览器将打开此链接。以`http(s)://`开头的有效可访问链接,华为通道必须使用https。长度小于300|android|
|settings|Object|否|无|推送条件设置,详细解释见下方settings说明||
|options|Object|否|无|其他配置,[更多关于options的说明](/uniCloud/uni-cloud-push/options)||
|options|Object|否|无|其他配置,[更多关于options的说明](../uni-cloud-push/options)||
**频次限制说明:**
- 多客户端接收消息推送API,频次限制200万次/天,申请修改请点击右侧“技术咨询”了解详情。
......
......@@ -136,7 +136,7 @@ uni-cms包括管理端和用户端。
- 如果您的项目单独使用`uni-cms-article`,需要在`unCloud/database`目录上点击“创建Schema”来创建`uni-cms-articles``uni-cms-categories`表后运行项目。
- uni-cms-article使用了[clientDB](clientdb.md),其权限体系依赖[uni-id](uni-id/summary.md)
- 如果您的项目需要账户体系,需将`uni-id-pages`插件导入至项目中,要了解`uni-id-pages` [详见](/uniCloud/uni-id/app.md)。如果您使用了[uni-starter](uni-starter.md)项目,那么其已经内置了 `uni-id-pages`插件。
- 如果您的项目需要账户体系,需将`uni-id-pages`插件导入至项目中,要了解`uni-id-pages` [详见](./uni-id/app.md)。如果您使用了[uni-starter](uni-starter.md)项目,那么其已经内置了 `uni-id-pages`插件。
#### 3. 多作者登录
......
......@@ -356,8 +356,8 @@ await uniIdCo.loginByWeixinMobile({
|&nbsp;&#124;-&nbsp;tokenExpired|string |token过期时间 |
**注意**
- 此接口会调用微信凭证接口获取access_token,uni-id-pages 1.0.8及以上版本会使用 [uni-open-bridge-common](/uniCloud/uni-open-bridge.md) 保存 access_token 信息。
- 如果开发者在其他应用未使用 [uni-open-bridge-common](/uniCloud/uni-open-bridge.md) 管理 access_token 等信息,可能会造成 access_token 冲突。
- 此接口会调用微信凭证接口获取access_token,uni-id-pages 1.0.8及以上版本会使用 [uni-open-bridge-common](../uni-open-bridge.md) 保存 access_token 信息。
- 如果开发者在其他应用未使用 [uni-open-bridge-common](../uni-open-bridge.md) 管理 access_token 等信息,可能会造成 access_token 冲突。
#### 一键登录@login-by-univerify
手机号已存在时登录,否则注册
......@@ -1777,8 +1777,8 @@ Cache-Control: no-cache
> 实人认证相关功能建议或问题,可以加入uni-im交流群进行讨论,[点此加入](https://im.dcloud.net.cn/#/?joinGroup=6445fc67bc1254655dcbf5f7)
基于[实人认证](/uniCloud/frv/intro.md)服务实现,实现用户刷脸核验真实身份,完成实名认证。
`uni-id-pages`已内置实人认证前端页面与云端云对象,[了解](/uniCloud/uni-id/summary.md#frv)如在`uni-id-pages`中使用。
基于[实人认证](../frv/intro.md)服务实现,实现用户刷脸核验真实身份,完成实名认证。
`uni-id-pages`已内置实人认证前端页面与云端云对象,[了解](../uni-id/summary.md#frv)如在`uni-id-pages`中使用。
#### 获取认证ID@get-frv-certify-id
......@@ -1836,8 +1836,8 @@ await uniIdCo.getFrvAuthResult({
| errCode | string&#124;number | 错误码 |
| errMsg | string | 错误信息 |
| authStatus | number | 认证状态:0 未认证 1 等待认证 2 认证通过 3 认证失败 |
| realName | string | 姓名(脱敏);[敏感信息加密参考](/uniCloud/uni-id/summary.md#sensitive-info-encrypt) |
| identity | string | 身份证号码(脱敏);[敏感信息加密参考](/uniCloud/uni-id/summary.md#sensitive-info-encrypt) |
| realName | string | 姓名(脱敏);[敏感信息加密参考](../uni-id/summary.md#sensitive-info-encrypt) |
| identity | string | 身份证号码(脱敏);[敏感信息加密参考](../uni-id/summary.md#sensitive-info-encrypt) |
### 其他功能@extra-function
......@@ -2059,7 +2059,7 @@ exports.main = async (event, context) => {
> `uni-id-co`请求鉴权签名与`uni-cloud-s2s`不能同时存在,如果存在`uni-cloud-s2s`,则会优先使用`uni-cloud-s2s`进行请求签名验证
uni-id-co 在URL化请求时,会对以下 API 进行调用鉴权验证,
在调用 API 时,开发者需要使用请求鉴权密钥(详见[配置文件](/uniCloud/uni-id/summary.md#config)`requestAuthSecret`按照 uni-id 的约定方式对请求中的关键数据进行签名值计算,
在调用 API 时,开发者需要使用请求鉴权密钥(详见[配置文件](../uni-id/summary.md#config)`requestAuthSecret`按照 uni-id 的约定方式对请求中的关键数据进行签名值计算,
并将签名值添加到Header请求头的 `uni-id-signature` 参数中传给 uni-id 进行签名验证,uni-id 会对接收到数据进行签名值计算,
并与接收到的请求签名值进行比对,如果签名值不一致,则视为无效签名,将拒绝本次请求。
......
......@@ -104,7 +104,7 @@ DCloud暂无计划开发百度、头条、QQ等小程序的登录,以及微博
2. 插件市场导入`uni-id`公用模块,[插件市场 uni-id](https://ext.dcloud.net.cn/plugin?id=2116)
3. 修改公用模块`uni-id`下的`config.json`内所需参数(请参考下面config.json的说明)
4. 上传`cloudfunctions/common`下的`uni-id`模块
5. 按照[公用模块使用说明](/uniCloud/cf-common)在云函数下安装`uni-id`模块
5. 按照[公用模块使用说明](../cf-common)在云函数下安装`uni-id`模块
6. 创建`uni-id-users``opendb-verify-codes`集合(opendb-verify-codes是验证码表。可以使用示例项目里面的db_init.json进行初始化、也可以在web控制台新建表时选择这些表模块)
或者直接导入[uni-id在插件市场的示例工程](https://ext.dcloud.net.cn/plugin?id=2116)
......@@ -335,8 +335,8 @@ HBuilderX 3.4.9起,uni-app web端对应的platform由`h5`调整为`web`。此
# 用户角色权限@rbac
为什么需要角色权限管理?
- 对于后台管理系统,比如[uniCloud admin](/uniCloud/admin),除了超级管理员,不同账号通常需根据职位、责任设定不同的系统权限。
- [clientDB](/uniCloud/database)允许前端直接操作数据库,但部分字段应该是系统计算或管理员设置的,比如文章的阅读数、收藏数及是否加精置顶,这些字段不允许普通用户在前端通过clientDB直接修改,此时也需要通过权限控制来保证系统的安全稳定。
- 对于后台管理系统,比如[uniCloud admin](../admin),除了超级管理员,不同账号通常需根据职位、责任设定不同的系统权限。
- [clientDB](../database)允许前端直接操作数据库,但部分字段应该是系统计算或管理员设置的,比如文章的阅读数、收藏数及是否加精置顶,这些字段不允许普通用户在前端通过clientDB直接修改,此时也需要通过权限控制来保证系统的安全稳定。
`uni-id`基于经典的RBAC模型实现了角色权限系统。
......
......@@ -25,7 +25,7 @@ App/小程序/网站做好后,如何告知你的用户?
- 基于 `uni-app` & `uniCloud` 实现
- 数据库设计遵循 [opendb 规范](opendb.md)
- 管理端遵循 [uni-admin 插件规范](/uniCloud/admin),可直接导入 `Admin` 项目中
- 管理端遵循 [uni-admin 插件规范](./admin),可直接导入 `Admin` 项目中
### 使用
......
......@@ -46,23 +46,23 @@ HBuilderX中敲下`udb`代码块,得到如下代码,然后通过collection
|spaceInfo|Object|服务空间信息,新增于`HBuilderX 3.2.11`。同uniCloud.init参数,参考:[uniCloud.init](init.md?id=init-unicloud)|
|collection|string|表名。支持输入多个表名,用 `,` 分割,自`HBuilderX 3.2.6`起也支持传入tempCollection组成的数组|
|field|string|指定要查询的字段,多个字段用 `,` 分割。不写本属性,即表示查询所有字段。支持用 oldname as newname方式对返回字段重命名|
|where|string|查询条件,对记录进行过滤。[见下](/uniCloud/unicloud-db?id=where)|
|where|string|查询条件,对记录进行过滤。[见下](./unicloud-db?id=where)|
|orderby|string|排序字段及正序倒序设置|
|foreign-key|String|手动指定使用的关联关系,HBuilderX 3.1.10+ [详情](/uniCloud/clientdb?id=lookup-foreign-key)|
|foreign-key|String|手动指定使用的关联关系,HBuilderX 3.1.10+ [详情](./clientdb?id=lookup-foreign-key)|
|page-data|String|分页策略选择。值为 `add` 代表下一页的数据追加到之前的数据中,常用于滚动到底加载下一页;值为 `replace` 时则替换当前data数据,常用于PC式交互,列表底部有页码分页按钮,默认值为`add`|
|page-current|Number|当前页|
|page-size|Number|每页数据数量|
|getcount|Boolean|是否查询总数据条数,默认 `false`,需要分页模式时指定为 `true`|
|getone|Boolean|指定查询结果是否仅返回数组第一条数据,默认 false。在false情况下返回的是数组,即便只有一条结果,也需要[0]的方式获取。在值为 true 时,直接返回结果数据,少一层数组,一般用于非列表页,比如详情页|
|action|string|云端执行数据库查询的前或后,触发某个action函数操作,进行预处理或后处理,[详情](/uniCloud/uni-clientDB?id=%e4%ba%91%e7%ab%af%e9%83%a8%e5%88%86)。场景:前端无权操作的数据,比如阅读数+1|
|action|string|云端执行数据库查询的前或后,触发某个action函数操作,进行预处理或后处理,[详情](./uni-clientDB?id=%e4%ba%91%e7%ab%af%e9%83%a8%e5%88%86)。场景:前端无权操作的数据,比如阅读数+1|
|manual|Boolean|**已过时,使用 `loadtime` 替代** 是否手动加载数据,默认为 false,页面onready时自动联网加载数据。如果设为 true,则需要自行指定时机通过方法`this.$refs.udb.loadData()`来触发联网,其中的`udb`指组件的ref值。一般onLoad因时机太早取不到this.$refs.udb,在onReady里可以取到|
|gettree|Boolean|是否查询树状结构数据,HBuilderX 3.0.5+ [详情](/uniCloud/clientdb?id=gettree)|
|gettree|Boolean|是否查询树状结构数据,HBuilderX 3.0.5+ [详情](./clientdb?id=gettree)|
|startwith|String|gettree的第一层级条件,此初始条件可以省略,不传startWith时默认从最顶级开始查询,HBuilderX 3.0.5+|
|limitlevel|Number|gettree查询返回的树的最大层级。超过设定层级的节点不会返回。默认10级,最大15,最小1,HBuilderX 3.0.5+|
|groupby|String|对数据进行分组,HBuilderX 3.1.0+|
|group-field|String|对数据进行分组统计|
|distinct|Boolean|是否对数据查询结果中重复的记录进行去重,默认值false,HBuilderX 3.1.0+|
|loadtime|String|加载数据时机,默认auto,可选值 auto&#124;onready&#124;manual,[详情](/uniCloud/unicloud-db?id=loadtime) HBuilderX3.1.10+|
|loadtime|String|加载数据时机,默认auto,可选值 auto&#124;onready&#124;manual,[详情](./unicloud-db?id=loadtime) HBuilderX3.1.10+|
|ssr-key|String|[详情](unicloud-db.md#ssrkey) HBuilderX 3.4.11+|
|@load|EventHandle|成功回调。联网返回结果后,若希望先修改下数据再渲染界面,则在本方法里对data进行修改|
|@error|EventHandle|失败回调|
......@@ -91,7 +91,7 @@ TODO:暂不支持in子查询功能。后续会补充
```
**注意:除非使用admin账户登录操作,否则需要在 uniCloud 控制台对要查询的表增加 Schema 权限配置。至少配置读取权限,否则无权在前端查询**,详见 [DB Schema](/uniCloud/schema)
**注意:除非使用admin账户登录操作,否则需要在 uniCloud 控制台对要查询的表增加 Schema 权限配置。至少配置读取权限,否则无权在前端查询**,详见 [DB Schema](./schema)
## v-slot:default
......@@ -188,7 +188,7 @@ collection有以下几种形式
where中指定要查询的条件。比如只查询某个字段的值符合一定条件的记录。
组件的where属性,与clientDB的JS API是一致的,且内容较多,所以详见js API中相关`jql`文档:[详情](/uniCloud/jql.html#where)
组件的where属性,与clientDB的JS API是一致的,且内容较多,所以详见js API中相关`jql`文档:[详情](./jql.html#where)
但组件与js API有一个差别,就是组件的属性中若使用js中的变量,需额外注意。
......@@ -325,7 +325,7 @@ export default {
</script>
```
再次强调,where条件内容较多,组件和api用法相同,完整的where条件文档在api文档中,另见:[JQL文档](/uniCloud/jql.html#where)
再次强调,where条件内容较多,组件和api用法相同,完整的where条件文档在api文档中,另见:[JQL文档](./jql.html#where)
## orderby
......
文档已迁移至:[/uniCloud/cf-functions?id=resformat](/uniCloud/cf-functions?id=resformat)
\ No newline at end of file
文档已迁移至:[/uniCloud/cf-functions?id=resformat](./cf-functions?id=resformat)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册