Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
d5dda936
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3598
Star
108
Fork
921
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
120
列表
看板
标记
里程碑
合并请求
109
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
120
Issue
120
列表
看板
标记
里程碑
合并请求
109
合并请求
109
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
d5dda936
编写于
3月 08, 2023
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: update secure network
上级
f1d8866d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
74 addition
and
8 deletion
+74
-8
docs/uniCloud/client-sdk.md
docs/uniCloud/client-sdk.md
+5
-4
docs/uniCloud/secure-network.md
docs/uniCloud/secure-network.md
+69
-4
未找到文件。
docs/uniCloud/client-sdk.md
浏览文件 @
d5dda936
...
...
@@ -425,9 +425,10 @@ uniCloud.offNeedLogin(log)
**参数**
|参数 |类型 |必填 |默认值 |说明 |
|--- |--- |--- |--- |--- |
|callLoginByWeixin|boolean|否 |false |是否在安全网络初始化同时执行一次uni-id-co的微信登录|
|参数 |类型 |必填 |默认值 |说明 |
|--- |--- |--- |--- |--- |
|callLoginByWeixin|boolean|否 |false |是否在安全网络初始化同时执行一次uni-id-co的微信登录,配置为false时不进行微信登录仅调用uni-id-co的secureNetworkHandshakeByWeixin方法进行握手 |
|openid |string |否 |- |新增于HBuilderX 3.7.7,传入此参数后此方法内部不再调用uni-id-co的任何方法,此时需要由开发者自行实现一些凭据的存储逻辑,详情参考:
[
不使用uni-id-pages时如何使用微信小程序安全网络
](
secure-network.md#mp-weixin-without-uni-id-pages
)
|
**示例**
...
...
@@ -440,8 +441,8 @@ uniCloud.offNeedLogin(log)
const
res
=
await
uniCloud
.
initSecureNetworkByWeixin
({
callLoginByWeixin
:
true
})
// #endif
console
.
log
(
'
initSecureNetworkByWeixin
'
,
res
);
// #endif
console
.
log
(
'
App Launch
'
)
}
}
...
...
docs/uniCloud/secure-network.md
浏览文件 @
d5dda936
...
...
@@ -146,18 +146,19 @@ App和微信两个平台细化说明如下:
如果项目之前已经使用过uni-id-pages和uni-open-bridge,则上述步骤可省略。
6.
在应用的生命周期
`onLaunch`
调用
`uniCloud.initSecureNetworkByWeixin()`
,进行安全网络请求前的握手操作,关于此接口详细描述见:
[
uniCloud.initSecureNetworkByWeixin
](
client-sdk.md#init-secure-network-by-weixin
)
6.
在应用的生命周期
`onLaunch`
(能保证在调用安全网络请求前调用完成的时机均可) 调用
`uniCloud.initSecureNetworkByWeixin()`
,进行安全网络请求前的握手操作,关于此接口详细描述见:
[
uniCloud.initSecureNetworkByWeixin
](
client-sdk.md#init-secure-network-by-weixin
)
对于使用uni-id-pages的项目App.vue页面需要补充如下代码,不使用uni-id-pages的开发者需要按照此文档进行操作:
[
不使用uni-id-pages时如何使用微信小程序安全网络
](
#mp-weixin-without-uni-id-pages
)
App.vue页面需要补充如下代码:
```
js
<
script
>
export
default
{
onLaunch
:
async
function
()
{
// #ifdef MP-WEIXIN
const
userInfo
=
uniCloud
.
getCurrentUserInfo
()
const
userLoginState
=
userInfo
.
tokenExpired
>
Date
.
now
()
-
3600
*
1000
const
callLoginByWeixin
=
userInfo
.
tokenExpired
<
Date
.
now
()
// 用户为未登录状态时调用一次微信登录
await
uniCloud
.
initSecureNetworkByWeixin
({
callLoginByWeixin
:
!
userLoginState
// 用户为未登录状态时调用一次微信登录
callLoginByWeixin
:
callLoginByWeixin
})
// #endif
}
...
...
@@ -171,6 +172,70 @@ App.vue页面需要补充如下代码:
!
[
微信小程序云端一体安全网络模块
](
https://web-assets.dcloud.net.cn/unidoc/zh/secure-network-wx-manifest.jpg
)
#### 不使用uni-id-pages时如何使用微信小程序安全网络@mp-weixin-without-uni-id-pages
> 新增于HBuilderX 3.7.7
对于部分已有用户体系,不希望引入uni-id-pages的开发者,可使用如下方案来使用微信小程序安全网络。
客户端需调整为在调用安全网络请求前使用
`uniCloud.initSecureNetworkByWeixin`
方法传入用户openid
```
js
// app.js
<
script
>
export
default
{
onLaunch
:
async
function
()
{
// #ifdef MP-WEIXIN
// 调用自有服务、云函数进行微信登录或以其他方式获取openid
const
openid
=
'
xxx
'
await
uniCloud
.
initSecureNetworkByWeixin
({
openid
:
openid
})
// #endif
}
}
<
/script>
```
云函数内需要调用
[
uni-open-bridge-common
](
uni-open-bridge.md#uni-open-bridge-common
)
将微信应用级access_token及登录用户的session_key同步到uniCloud数据库,以便安全网络云端能从微信获取解密用参数。
::: warning uni-open-bridge-common使用注意事项
uni-open-bridge-common仍依赖uni-id的配置获取微信小程序appid,如何配置请参考:
[
uni-id config
](
uni-id-pages.md#config
)
:::
如果从自有服务器同步access_token和session_key到uniCloud数据库内可以使用uni-open-bridge提供的url化调用方式,请参考:
[
uni-open-bridge url化调用
](
uni-open-bridge.md#cloudurl
)
如果从云函数内同步access_token和session_key给安全网络按如下文档进行
**云函数存储微信小程序应用级access_token**
开发者应在自己云函数获取access_token,传递给uni-open-bridge-common进行存储,以供安全网络使用。或使用uni-open-bridge云函数的定时任务自动获取access_token,参考:
[
应用级access_token
](
uni-open-bridge.md#access_token
)
微信access_token有一些特性,处理不好容易出现bug,请务必详读微信公众平台关于access_token的说明(微信小程序、公众号逻辑一样):
[
微信公众平台access_token
](
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html
)
```
js
await
require
(
'
uni-open-bridge-common
'
).
setAccessToken
({
dcloudAppid
:
'
__UNI__xxx
'
,
platform
:
'
weixin-mp
'
},
{
access_token
:
accessToken
},
7200
)
// 新获取的accessToken有效期是2小时
```
**云函数存储微信用户session_key**
开发者应在用户调用微信登录使将openid、session_key传递给uni-open-bridge-common进行存储,以供安全网络使用
```
js
await
require
(
'
uni-open-bridge-common
'
).
setSessionKey
({
dcloudAppid
:
'
__UNI__xxx
'
,
openid
,
platform
:
'
weixin-mp
'
},
{
session_key
:
sessionKey
},
30
*
24
*
60
*
60
)
// session_key并没有固定有效期,暂以30天进行存储
```
## 客户端强制验证@verify-client
> 新增于 HBuilderX 3.6.8
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录