提交 156a6dee 编写于 作者: 雪洛's avatar 雪洛

docs: update secure network

上级 1b2d2ec2
...@@ -26,6 +26,7 @@ uniCloud分为客户端和云端两部分,有些接口名称相同,参数也 ...@@ -26,6 +26,7 @@ uniCloud分为客户端和云端两部分,有些接口名称相同,参数也
|uniCloud.offNeedLogin() |移除监听需要登录事件 [详情](#off-need-login) | |uniCloud.offNeedLogin() |移除监听需要登录事件 [详情](#off-need-login) |
|uniCloud.onRefreshToken() |监听token更新事件 [详情](#on-refresh-token) | |uniCloud.onRefreshToken() |监听token更新事件 [详情](#on-refresh-token) |
|uniCloud.offRefreshToken() |移除监听token更新事件 [详情](#off-refresh-token) | |uniCloud.offRefreshToken() |移除监听token更新事件 [详情](#off-refresh-token) |
|uniCloud.initSecureNetworkByWeixin() |在微信小程序安全网络请求发送之前与云函数握手 [详情](#init-secure-network-by-weixin) |
### 获取当前用户信息getCurrentUserInfo@client-getcurrentuserinfo ### 获取当前用户信息getCurrentUserInfo@client-getcurrentuserinfo
...@@ -415,6 +416,45 @@ uniCloud.onNeedLogin(log) ...@@ -415,6 +416,45 @@ uniCloud.onNeedLogin(log)
uniCloud.offNeedLogin(log) uniCloud.offNeedLogin(log)
``` ```
### 微信小程序安全网络初始化@init-secure-network-by-weixin
> 新增于 3.6.8
安全网络相关文档请参考:[安全网络](secure-network.md)
**参数**
|参数 |类型 |必填 |默认值 |说明 |
|--- |--- |--- |--- |--- |
|callLoginByWeixin|boolean|否 |false |是否在安全网络初始化同时执行一次uni-id-co的微信登录|
**示例**
```js
// App.vue
<script>
export default {
onLaunch: async function() {
// #ifdef MP-WEIXIN
const res = await uniCloud.initSecureNetworkByWeixin({
callLoginByWeixin: true
})
// #endif
console.log('initSecureNetworkByWeixin', res);
console.log('App Launch')
}
}
</script>
<style>
</style>
```
**注意**
- 发送安全网络请求前uniCloud客户端sdk会判断是否完成初始化,如未完成会等待完成后再发送安全网络请求。
- 需要确保安全网络请求在此方法调用后执行
## 属性 ## 属性
### 获取当前uniCloud实例的服务商 ### 获取当前uniCloud实例的服务商
......
...@@ -82,7 +82,7 @@ App和微信小程序略有区别,但大体都要经过如下流程: ...@@ -82,7 +82,7 @@ App和微信小程序略有区别,但大体都要经过如下流程:
3. 工程中导入uni-id-pages 3. 工程中导入uni-id-pages
- `uni-id` [文档](uni-id-summary.md#save-user-token) - `uni-id` [文档](uni-id-summary.md#save-user-token)
- `uni-id-co` [插件下载地址](https://ext.dcloud.net.cn/plugin?id=8577) - `uni-id-pages` [插件下载地址](https://ext.dcloud.net.cn/plugin?id=8577),需要`uni-id-pages 1.0.27`及以上版本
`uni-id-pages`这个插件是云端一体的登录插件,其实安全网络只需要其中的`uni-id-co`云对象。插件中前端登录页面是否使用由开发者自己根据业务决定。 `uni-id-pages`这个插件是云端一体的登录插件,其实安全网络只需要其中的`uni-id-co`云对象。插件中前端登录页面是否使用由开发者自己根据业务决定。
...@@ -135,45 +135,27 @@ App和微信小程序略有区别,但大体都要经过如下流程: ...@@ -135,45 +135,27 @@ App和微信小程序略有区别,但大体都要经过如下流程:
如果项目之前已经使用过uni-id-pages和uni-open-bridge,则上述步骤可省略。 如果项目之前已经使用过uni-id-pages和uni-open-bridge,则上述步骤可省略。
6. 在应用的生命周期 `onLaunch` 中检查微信登陆状态,如果过期需要登陆 6. 在应用的生命周期 `onLaunch` 调用 `uniCloud.initSecureNetworkByWeixin()`,进行安全网络请求前的握手操作,关于此接口详细描述见:[uniCloud.initSecureNetworkByWeixin](client-sdk.md#init-secure-network-by-weixin)
注意: [uni.checkSession](https://uniapp.dcloud.net.cn/api/plugins/login.html#uni-checksession) 有调用次数限制警告,一个 `pv` 可调用 `2`
App.vue页面需要补充如下代码: App.vue页面需要补充如下代码:
```js ```js
<script> <script>
function checkUserSession() {
uni.checkSession({
fail: (err) => {
uni.login({
success: async ({ code }) => {
const uniIdCo = uniCloud.importObject('uni-id-co') // uniCloud云对象 uni-id-co
await uniIdCo.loginByWeixin({ code })
}
})
}
})
}
export default { export default {
onLaunch: function() { onLaunch: async function() {
console.log('App Launch')
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
checkUserSession(); await uniCloud.initSecureNetworkByWeixin()
// #endif // #endif
} }
} }
</script> </script>
``` ```
在此方法内部会调用一次微信小程序的login,然后使用返回的code调用`uni-id-co``secureNetworkHandshakeByWeixin`方法(新增于uni-id-pages 1.0.27)
7. 在项目根目录manifest.json文件内为微信小程序平台开启`云端一体安全网络模块` 7. 在项目根目录manifest.json文件内为微信小程序平台开启`云端一体安全网络模块`
![微信小程序云端一体安全网络模块](https://f184e7c3-1912-41b2-b81f-435d1b37c7b4.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/ab96f1f7-af14-4f08-8b1c-699ecfce3381.jpg) ![微信小程序云端一体安全网络模块](https://f184e7c3-1912-41b2-b81f-435d1b37c7b4.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/ab96f1f7-af14-4f08-8b1c-699ecfce3381.jpg)
**注意**
- 发送安全网络请求前如果检测到客户端storage内不存在`uni_id_token`(即用户未登录),则会自动调用一次`uni-id-co``loginByWeixin`方法进行一次登录
## 客户端验证@verify-client ## 客户端验证@verify-client
> 新增于 HBuilderX 3.6.8 > 新增于 HBuilderX 3.6.8
...@@ -215,6 +197,7 @@ App.vue页面需要补充如下代码: ...@@ -215,6 +197,7 @@ App.vue页面需要补充如下代码:
**注意** **注意**
- 如果修改客户端验证配置需要重新打包做出修改的客户端。 - 如果修改客户端验证配置需要重新打包做出修改的客户端。
- 如需对clientDB请求验真需要使用`uni-clientDB`作为云函数名
## 数据加密传输@encrypt-data ## 数据加密传输@encrypt-data
......
...@@ -1495,6 +1495,15 @@ await uniIdCo.setPushCid({ ...@@ -1495,6 +1495,15 @@ await uniIdCo.setPushCid({
|&nbsp;&#124;-&nbsp;token |string |token | |&nbsp;&#124;-&nbsp;token |string |token |
|&nbsp;&#124;-&nbsp;tokenExpired|string |token过期时间 | |&nbsp;&#124;-&nbsp;tokenExpired|string |token过期时间 |
#### 微信安全网络握手@secure-network-handshake-by-weixin
此接口用于微信小程序端安全网络的握手,安全网络相关文档请参考:[安全网络](secure-network.md)
一般无需通过uniCloud.importObject方式调用,在客户端调用`uniCloud.initSecureNetworkByWeixin()`时会通过此接口获取会话相关信息。
此接口会将会话信息存储在`opendb-open-data`表内,如果在`initSecureNetworkByWeixin`方法内传递了`callLoginByWeixin: true`会在存储会话信息的同时执行一次uni-id-co的`loginByWeixin`方法
### 管理接口@admin ### 管理接口@admin
#### 管理员新增用户@add-user #### 管理员新增用户@add-user
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册