多个小程序同步登录【已实现】
发布于 2 年前 作者 nwang 5208 次浏览 来自 分享
1、需求

有同一个主体的2个小程序,分别是小程序A和小程序B,现在需要小程序A登录后,点击某个按钮/页面跳转到小程序B,实现小程序B登录。

2、思路

小程序A通过wx.navigateToMiniProgram方法将extraData传递给小程序B,小程序B在app.js中的onLaunch里面接收到extraData的值,从而实现登录。

3、实现
  • 小程序A中的wx.navigateToMiniProgram方法
function syncLogin(appId,userId){
    wx.navigateToMiniProgram({
      appId: appId,
      path: '',	// 打开小程序B页面的路径,如果为空则打开首页
      extraData: {
        usrId: userId,	// 需要传递给小程序B的数据
    },
      envVersion: 'develop',    //开发版
      // envVersion: 'trial',          //体验版
      // envVersion: 'release',     //正式版
   })
}
小程序B中模拟测试



在小程序B开发工具中,点击编译,进入场景选择【1037:从小程序进入】,并将`` AppID ``和`` extraData ``填上,一般都是`` json ``字符串。

在小程序B中的app.js中的onLaunch里面通过options接收到extraData的值,用console.log打印验证。

App({
  // 公共配置
  data: {
    
  },
  // onLaunch:当小程序加载完毕后就执行的方法
  onLaunch: function (options) {
  	// 得到进入场景值
  	console.log('options.from:' + options.referrerInfo.extraData.userId);
    // ...根据用户ID,就可以实现【小程序A在登录状态下点击跳转到小程序B自动登录的效果】。。
  }
})
1 回复

直接传id不安全,应该传一次性token,小程序B中拿到token后调接口校验token完成登录

回到顶部