Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
�听先森�
unidocs-zh
提交
3b4ea535
U
unidocs-zh
项目概览
�听先森�
/
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,体验更适合开发者的 AI 搜索 >>
提交
3b4ea535
编写于
3月 08, 2023
作者:
DCloud_JSON
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update api.md
上级
aeb8e30d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
1 addition
and
1 deletion
+1
-1
docs/uniCloud/uni-cloud-push/api.md
docs/uniCloud/uni-cloud-push/api.md
+1
-1
未找到文件。
docs/uniCloud/uni-cloud-push/api.md
浏览文件 @
3b4ea535
...
...
@@ -51,7 +51,7 @@
如果用户处于未登录状态,你可以基于
`device_id`
向用户推送消息,但是推送服务器底层只识别
`push_clientid`
,需要通过查数据库获得
`push_clientid`
。而
`device_id`
与
`push_clientid`
的映射关系不由
`uni-push`
提供,而是由
[
uni统计
](
https://uniapp.dcloud.io/uni-stat-v2.html
)
模块内置的功能实现。如果你不使用uni统计,则需要在应用启动时调用
[
getPushClientId
](
/api/plugins/push
)
获取
`push_clientid`
,获取成功后(应用未在manifest中启用uni-push2.0则会获取失败)调用服务端云对象的某个方法(参数:
`push_clientid`
)执行向
`opendb-device`
表写入或更新(存在时):
[
设备信息
](
https://uniapp.dcloud.io/uniCloud/cloud-obj.html#get-client-info
)
和
`push_clientid`
。
同理基于
`user_id`
向用户推送消息,需要
`user_id`
与
`push_clientid`
的映射关系,可以直接使用
[
uni-id-pages
](
https://ext.dcloud.net.cn/plugin?id=8577
)
插件内置的功能实现。如果你不使用
`uni-
di
-pages`
需要在
`App.vue`
调用
[
uniCloud.onRefreshToken
](
https://uniapp.dcloud.io/uniCloud/client-sdk.html#on-refresh-token
)
监听token发生变化(即:用户登录和token续期时),调用服务端云对象的某个方法(参数:
`push_clientid`
)操作
`uni-id-device`
表,记录
`device_id`
与
`user_id`
(防客户端伪造,需校验
`token`
)的映射关系;完整字段包含
`user_id`
、
`device_id`
、
`token_expired`
、
`push_clientid`
、
`appid`
。同时再向
`opendb-device`
表写入或更新(存在时):
[
设备信息
](
https://uniapp.dcloud.io/uniCloud/cloud-obj.html#get-client-info
)
和
`push_clientid`
。
同理基于
`user_id`
向用户推送消息,需要
`user_id`
与
`push_clientid`
的映射关系,可以直接使用
[
uni-id-pages
](
https://ext.dcloud.net.cn/plugin?id=8577
)
插件内置的功能实现。如果你不使用
`uni-
id
-pages`
需要在
`App.vue`
调用
[
uniCloud.onRefreshToken
](
https://uniapp.dcloud.io/uniCloud/client-sdk.html#on-refresh-token
)
监听token发生变化(即:用户登录和token续期时),调用服务端云对象的某个方法(参数:
`push_clientid`
)操作
`uni-id-device`
表,记录
`device_id`
与
`user_id`
(防客户端伪造,需校验
`token`
)的映射关系;完整字段包含
`user_id`
、
`device_id`
、
`token_expired`
、
`push_clientid`
、
`appid`
。同时再向
`opendb-device`
表写入或更新(存在时):
[
设备信息
](
https://uniapp.dcloud.io/uniCloud/cloud-obj.html#get-client-info
)
和
`push_clientid`
。
**注意:**
客户端上报的信息在理论上存在被篡改可能,基于
`device_id`
向用户推送消息有被窃听的风险(营销类消息不用太关心这个)。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录