提交 748dcee2 编写于 作者: d-u-a's avatar d-u-a

uni-open-bridge:

1. 补充 opendb-open-data schema链接
2. 补充 uni.checkSession 链接
3. 补充 `encrypt_key` 在不使用托管的情况下由外部系统操作
4. 修正 凭据状态 微信小程序没有 user_access_token
上级 88533e52
......@@ -32,7 +32,7 @@
`uni-open-bridge` 包括:
1. 一个同名云对象 `uni-open-bridge`,插件下载地址:[https://ext.dcloud.net.cn/plugin?id=9002](https://ext.dcloud.net.cn/plugin?id=9002)。(其依赖了下面的公共模块,但不是一个插件)
2. 一个公共模块 `uni-open-bridge-common` ,插件下载地址:[https://ext.dcloud.net.cn/plugin?id=9177](https://ext.dcloud.net.cn/plugin?id=9177)。它独立为单独插件,是为了方便其他业务模块引用。事实上uni-id就引用了这个common插件。
3. 配套的数据库,保存这些凭据,表名为 [opendb-open-data](https://gitee.com/dcloud/opendb/tree/master/collection)。在redis中的key格式为 `uni-id:[dcloudAppid]:[platform]:[openid]:[access-token|user-access-token|session-key|encrypt-key-version|ticket]`
3. 配套的数据库,保存这些凭据,表名为 [opendb-open-data](https://gitee.com/dcloud/opendb/blob/master/collection/opendb-open-data/collection.json)。在redis中的key格式为 `uni-id:[dcloudAppid]:[platform]:[openid]:[access-token|user-access-token|session-key|encrypt-key-version|ticket]`
云对象`uni-open-bridge`默认是定时运行的,在package.json中配置了每小时定时运行一次(部署到线上服务空间后生效)。
......@@ -69,16 +69,16 @@
|凭据 |微信小程序 |微信公众号H5 |微信外的web站 |非微信的App|
|:-: |:-: |:-: |:-: |:-: |
|[access_token](#access_token) |定时刷新 |定时刷新 |开发者操作 |开发者操作 |
|[user_access_token](#user_access_token)| |开发者操作 |- |- |
|[user_access_token](#user_access_token)|- |开发者操作 |- |- |
|[session_key](#session_key) |uni-id维护或开发者操作 |- |- |- |
|[encrypt_key](#encrypt_key) |开发者操作 |- |- |- |
|[encrypt_key](#encrypt_key) |[uni云端一体安全网络](secret-net)开发者操作 |- |- |- |
|[ticket](#ticket) |- |定时刷新 |- |- |
- `定时刷新`:指由云对象 `uni-open-bridge` 的定时任务触发,自动从微信服务器获取凭据,通过调用 `uni-open-bridge-common` 写入到Redis或数据库
- `开发者操作`:指由开发者引入公共模块 `uni-open-bridge-common`,调用相关读写[方法](#uni-open-bridge-common)
- `session_key`: 如果使用了uni-id,则uni-id用户登陆时会自动读写该凭据。一般无需开发者维护。
- `encrypt_key` 依赖 `access_token``session_key`,如果依赖的值已存在,可直接读取 `encrypt_key`,如果不存在自动向微信服务器获取、开发者应该仅读取该值,如果有外部系统依赖时可写入
- `encrypt_key` 依赖 `access_token``session_key`,如果依赖的值已存在,可直接读取 `encrypt_key`,如果不存在自动向微信服务器获取、开发者应该仅读取该值,如果使用了[uni云端一体安全网络](secret-net)由其维护,如果有不使用 `uni-open-bridge` 托管的[情况](#nouseuniopenbridge),则有外部系统操作
- `ticket` 依赖 `access_token`,直接获取 `ticket` 会检查 `access_token`,如果不存在默认先请求微信服务器获取并保存,继续请求 `ticket`
还有一些不常用的凭据暂不列出,例如:非微信的App平台的 access_token。
......@@ -103,8 +103,8 @@
- 微信小程序
1. 客户端登陆需要保存 [session_key](#session_key)
2. 解密用户敏感数据需要 [access_token](#access_token)[session_key](#session_key),例如获取用户授权的手机号、用户敏感资料
3. 解密[uni云端一体安全网络]()通道使用的加密数据需要 [access_token](#access_token)、[session_key](#session_key)[encrypt_key](#encrypt_key)
2. 解密用户敏感数据需要 [access_token](#access_token)[session_key](#session_key),例如获取用户授权的手机号、用户敏感资料
3. 解密[uni云端一体安全网络](secret-net)通道使用的加密数据需要 [access_token](#access_token)[session_key](#session_key)[encrypt_key](#encrypt_key)
- 微信公众号
......@@ -184,7 +184,7 @@
微信不会把 `session_key` 的有效期告知开发者,会根据用户使用小程序的行为对 `session_key` 进行续期。用户越频繁使用小程序,`session_key` 有效期越长。
开发者在 `session_key` 失效时,可以通过重新执行登录流程获取有效的 `session_key`。使用接口 `uni.checkSession` 可以校验 `session_key` 是否有效,从而避免小程序反复执行登录流程。
开发者在 `session_key` 失效时,可以通过重新执行登录流程获取有效的 `session_key`。使用接口 [uni.checkSession](https://uniapp.dcloud.net.cn/api/plugins/login.html#uni-checksession) 可以校验 `session_key` 是否有效,从而避免小程序反复执行登录流程。
当开发者在实现自定义登录态时,可以考虑以 `session_key` 有效期作为自身登录态有效期,也可以实现自定义的时效性策略。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册