微信小程序开发问答《七十三》登录相关问题 & 上传logo返回后不能同步 ... ... - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

微信小程序开发问答《七十三》登录相关问题 & 上传logo返回后不能同步 ... ...

发表时间:2021-4-30

发布人:葵宇科技

浏览次数:50

1、微信小程序登录相关问题?

先说下我所理解的:

  1. wx.checksession() 只能检查用code换来的session_key在微信服务器中是否过期。
  2. 而前端拿到后台生成的3rd_session, 这个3rd_session的过期时间是服务器定义的。

如果上面的理解没错的话(有错误望指出),我猜想就会出现下面两种情况:

  1. wx.checkSession()检测的微信服务器session_key并没有过期。而我们服务器3rd_session 已经过期,这时候怎么办,是否要重新走一遍登录流程。
  2. wx.checkSession()已过期,这种情况下,当然不管3rd_session是否过期,都需要重新走一遍登录流程来重置, 这样处理对吗。

根据以上,那是不是每次http请求都要先wx.checkSession()来检测是否过期呢。并且我怀疑会有情况一出现的可以,这个过期并不能判定3rd_session是否过期。

所以,感觉很混乱。想知道大家是怎么处理的。

答:我认为,既然自己的服务器已经维护了一套session,客户端是没有必要关注wx.checksession() 的。

如果想知道是否过期,问自己的服务器就好了,就像楼上所说,小程序的这些接口没有次数限制,由服务端自己去处理
1.3rd_session未过期,session_key过期,则服务器自己更新session_key就好
2.3rd_session过期,session_key未过期,更新服务器3rd_session就好(重新走流程)

可以试试将获取到的 session 登录信息存到 sessionStorage 里面。

2、微信小程序的转发方法 onShareAppMessage 内可以定义转发内容之外的逻辑吗?

根据文档 转发 ,小程序内的转发方法 onShareAppMessage 需要直接返回一个包含转发内容的对象,该对象内的 path 值为接受转发者看到的页面路径。例如

Page({
  onShareAppMessage: function (res) {
    return {
      title: '自定义转发标题',
      path: '/page/user?queryId=123',
      success: function(res) {
        // 转发成功
      },
    }
  }
})

假如拼接 path 值所需的 queryId 是由一个请求返回的,即不能同步获取到,例如

Page({
  onShareAppMessage: function (res) {
    let queryId = ''
    wx.request({
      url: '...',
      method: 'GET',
      success (res) {
        queryId = res.queryId
      },
    })
    return {
      title: '自定义转发标题',
      path: `/page/user?queryId=${queryId}`,
      success (res) {
        // 转发成功
      },
    }
  }
})

那么 JavaScript 有没有什么方法可以使以上的 onShareAppMessage 方法直接返回有效的 queryId 呢,用 promise 之类的话?


答:我改了那个weixin.js

还有种就是可以不传link,会动态获取当前url,也就是你可以在url上附加#aa这种,也可以获取到

3、