Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
linghubobo
unidocs-zh
提交
d5dda936
U
unidocs-zh
项目概览
linghubobo
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录