Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
程序yang
unidocs-zh
提交
523dbd84
U
unidocs-zh
项目概览
程序yang
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
523dbd84
编写于
10月 08, 2022
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: update secure network
上级
f9c1afe5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
48 addition
and
13 deletion
+48
-13
docs/uniCloud/secure-network.md
docs/uniCloud/secure-network.md
+48
-13
未找到文件。
docs/uniCloud/secure-network.md
浏览文件 @
523dbd84
...
...
@@ -29,23 +29,31 @@ DCloud面向开发者同时提供了端引擎`uni-app` 和 云引擎`uniCloud`
### 微信小程序@mp-weixin
安全网络在微信小程序上的实现,依赖了微信提供的一些用户级的凭据。所以需要下载
`uni-id`
和
`uni-open-bridge`
,并在app.vue里初始化。
安全网络在微信小程序上的实现,依赖了微信提供的一些用户级的凭据。所以需要下载
`uni-id
-pages
`
和
`uni-open-bridge`
,并在app.vue里初始化。
1.
工程中导入uni-id
1.
在
[
开发者中心
](
https://dev.dcloud.net.cn/
)
`应用详情 --> 【名称待定】`
内填写微信小程序的appId。一个应用只能有一个发行配置,但是可以有多个开发配置
【图片待补充】
2.
在uniCloud控制台关联允许发送安全网络请求的应用
【图片待补充】
3.
工程中导入uni-id-pages
-
`uni-id`
[
文档
](
uni-id-summary.md#save-user-token
)
-
`uni-id-co`
[
插件下载地址
](
https://ext.dcloud.net.cn/plugin?id=8577
)
`uni-id-pages`
这个插件是云端一体的登录插件,其实安全网络只需要其中的
`uni-id-co`
云对象。插件中前端登录页面是否使用由开发者自己根据业务决定。
2
.
工程中导入uni-open-bridge插件
4
.
工程中导入uni-open-bridge插件
安全网络在微信小程序上依赖了微信的
`access_token`
、
`session_key`
、
`encrypt_key`
等凭据。这些凭据需要
`uni-open-bridge`
统一接管。
-
`uni-open-bridge`
[
文档
](
https://uniapp.dcloud.net.cn/uniCloud/uni-open-bridge.html
)
-
`uni-open-bridge`
[
插件下载地址
](
https://ext.dcloud.net.cn/plugin?id=9002
)
3
.
配置uni-id和uni-open-bridge
5
.
配置uni-id和uni-open-bridge
登陆微信公众平台
[
https://mp.weixin.qq.com/
](
https://mp.weixin.qq.com/
)
,获取微信小程序的固定凭据
`appid`
和
`secret`
,配置到 uni-id-config
...
...
@@ -85,9 +93,9 @@ DCloud面向开发者同时提供了端引擎`uni-app` 和 云引擎`uniCloud`
注意:拷贝此文件内容时需要移除
`注释`
。标准json不支持注释。在HBuilderX中可用多选
`//`
来批量移除注释。
如果项目之前已经使用过uni-id和uni-open-bridge,则上述步骤可省略。
如果项目之前已经使用过uni-id
-pages
和uni-open-bridge,则上述步骤可省略。
4
.
在应用的生命周期
`onLaunch`
中检查微信登陆状态,如果过期需要登陆
6
.
在应用的生命周期
`onLaunch`
中检查微信登陆状态,如果过期需要登陆
注意:
[
uni.checkSession
](
https://uniapp.dcloud.net.cn/api/plugins/login.html#uni-checksession
)
有调用次数限制警告,一个
`pv`
可调用
`2`
次
...
...
@@ -117,15 +125,32 @@ App.vue页面需要补充如下代码:
}
<
/script>
```
7.
在项目根目录manifest.json文件内为微信小程序平台开启安全网络模块
【图片待补充】
### App@app
App平台安全网络需使用
[
自定义基座
](
../tutorial/run/run-app.md#customplayground
)
,App端安全网络不依赖于登录逻辑。
1.
在
[
开发者中心
](
https://dev.dcloud.net.cn/
)
`应用详情 --> 证书管理`
内填写安卓应用的包名、签名和iOS应用的bundleId。一个应用只能有一个发行证书配置,但是可以有多个开发证书配置
5.
在manifest中勾选加密模块
**缺内容?**
【图片待补充】
2.
在uniCloud控制台关联允许发送安全网络请求的应用
【图片待补充】
3.
在项目根目录manifest.json文件内为app平台开启安全网络模块
【图片待补充】
## 调用方式
准备工作完成后,在uni-app客户端调用uniCloud服务器时,可以通过加入secret参数来声明这次请求走安全网络,对传输数据加密。
-
callFunction
### 云函数
客户端通过callFunction调用云函数时,加入secretType参数。
```
js
...
...
@@ -138,7 +163,7 @@ uniCloud.callFunction({
})
```
-
云对象
###
云对象
客户端通过importObject调用云对象时,通过secretMethods参数来配置每个方法调用时是否加密。
...
...
@@ -148,7 +173,7 @@ uniCloud.importObject('object-name', {
})
```
-
clientDB
###
clientDB
暂不支持
...
...
@@ -170,11 +195,15 @@ uniCloud.importObject('object-name', {
方法级配置优先级最高,例如
`secretMethods: {'*':'response', 'login':'both'}`
,login 的 both 覆盖了
`'*':'response'`
**注意**
-
微信小程序安全网络依赖于登录逻辑,因此在客户端检测到发送安全网络请求时用户未登录时会自动调用uni-id-co的loginByWeixin接口
## 服务器端
虽然uni-app客户端和uniCloud云端通信是加密的,但对于开发者而言过程是透明的。
**不管是客户端接收云端数据、还是云端接受客户端数据,开发者的代码拿到的数据都是
加
密后的数据。**
**不管是客户端接收云端数据、还是云端接受客户端数据,开发者的代码拿到的数据都是
解
密后的数据。**
但云端有一个注意事项:为了避免客户端伪造
`secretType`
获取服务器敏感数据,应以服务器端为准,如果客户端携带的
`secretType`
不符合要求应拒绝响应数据。示例代码如下
...
...
@@ -215,7 +244,13 @@ module.exports = {
## 错误码
**缺内容,客户端错误,服务器解密错误,都应该把错误码列出来?**
|错误码 |说明 |平台 |
|--- |--- |--- |
|ACCOUNT_NOT_EXISTS |用户账号不存在 |微信小程序 |
|OPENID_NOT_FOUND |用户表记录内openid未找到 |微信小程序 |
|GET_ENCRYPT_KEY_FAILED |获取加密key失败 |微信小程序 |
微信小程序加解密时还会使用uni-id-common的checkToken方法,相关错误码参考:
[
uni-id错误码
](
uni-id-summary.md#errcode
)
## 小贴士
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录