async onShareAppMessage(res) {
if (res.from === 'button') { // 来自页面内分享按钮
console.log(res.target)
} else if (res.from === 'menu') {
var path = "/pages/home/home"
var token = uni.getStorageSync('token') if (token === "") {
uni.showToast({
title: '登陆后进行分享'
})
// 未登录,跳转登录页面
uni.navigateTo({
url: '/subpkg/login/login'
})
} else {
const {data: res } = await uni.$http.get("后端api地址")
if (res.code === '0000' && res.data !== null) {
path = "/pages/home/home?gId=" + res.data.id
}
}
return {
title: '3周年感恩活动',
path: path
}
}
}
- 发布:2023-06-27 03:39
- 更新:2023-06-27 09:01
- 阅读:329
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 3.8.4
第三方开发者工具版本号: 1.06.2306020
基础库版本号: 2.32.2
项目创建方式: HBuilderX
示例代码:
操作步骤:
1. 分享用户首先登录,登录成功后把token保存在storage中
2. 使用小程序菜单分享功能,分享小程序给好友
3. 好友打开被分享的小程序,请求需要携带token登录认证的接口
1. 分享用户首先登录,登录成功后把token保存在storage中
2. 使用小程序菜单分享功能,分享小程序给好友
3. 好友打开被分享的小程序,请求需要携带token登录认证的接口
预期结果:
1. 查看到的好友自己的数据
1. 查看到的好友自己的数据
实际结果:
1. 实际结果看到的数据不是好友自己的,是分享用户的数据
1. 实际结果看到的数据不是好友自己的,是分享用户的数据
bug描述:
- 用户登录成功后,把用户token保存在storage中
后端使用Spring Security + Oauth2 + jwt tokenuni.setStorageSync('token', 'jwt token内容')
- uniapi api 文档:onShareAppMessage API
根据此文档示例使用小程序右上角菜单开启分享功能,把小程序分享给好友
好友在自己微信打开小程序,向后台发起请求时从storage中获取token,结果token为分享用户的token,查询出来的数据时分享人的
Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序
感觉需求就有问题了
00飞00 (作者)
需求有什么问题?微信小程序不能分享给好友么?
2023-06-27 10:16
00飞00 (作者)
分享给好友,他打开后登录,是不是要加载自己的数据。
现在通过这个分享功能,把我的登录token从storage带过去了,他打开后加载的是我的数据,这没有问题么?
2023-06-27 10:18
Diligent_UI
回复 00飞00: 你的token查询你的消息有啥问题,可能后端就是通过token判断用户
2023-06-27 13:05