00飞00
00飞00
  • 发布:2023-06-27 03:39
  • 更新:2023-06-27 09:01
  • 阅读:329

【报Bug】onShareAppMessage 微信小程序分享发送给好友携带storage存储信息

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX类型: 正式

HBuilderX版本号: 3.8.4

第三方开发者工具版本号: 1.06.2306020

基础库版本号: 2.32.2

项目创建方式: HBuilderX

示例代码:
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  
        }  
    }  

}

操作步骤:

1. 分享用户首先登录,登录成功后把token保存在storage中

2. 使用小程序菜单分享功能,分享小程序给好友

3. 好友打开被分享的小程序,请求需要携带token登录认证的接口

预期结果:

1. 查看到的好友自己的数据

实际结果:

1. 实际结果看到的数据不是好友自己的,是分享用户的数据

bug描述:

  1. 用户登录成功后,把用户token保存在storage中
    后端使用Spring Security + Oauth2 + jwt token
    uni.setStorageSync('token', 'jwt token内容')
  2. uniapi api 文档:onShareAppMessage API
    根据此文档示例使用小程序右上角菜单开启分享功能,把小程序分享给好友
    好友在自己微信打开小程序,向后台发起请求时从storage中获取token,结果token为分享用户的token,查询出来的数据时分享人的
2023-06-27 03:39 负责人:无 分享
已邀请:
Diligent_UI

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

要回复问题请先登录注册