微信小程序開發問答《七十三》登錄相關問題 & 上(shàng)傳logo返回後不(bù)能同步 ... ... - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

微信小程序開發問答《七十三》登錄相關問題 & 上(shàng)傳logo返回後不(bù)能同步 ... ...

發表時(shí)間:2021-4-30

發布人(rén):融晨科技

浏覽次數:69

1、微信小程序登錄相關問題?

先說(shuō)下我所理解的(de):

  1. wx.checksession() 隻能檢查用code換來(lái)的(de)session_key在(zài)微信服務器中是(shì)否過期。
  2. 而(ér)前端拿到(dào)後台生成的(de)3rd_session, 這(zhè)個(gè)3rd_session的(de)過期時(shí)間是(shì)服務器定義的(de)。

如果上(shàng)面的(de)理解沒錯的(de)話(有錯誤望指出(chū)),我猜想就(jiù)會出(chū)現下面兩種情況:

  1. wx.checkSession()檢測的(de)微信服務器session_key并沒有過期。而(ér)我們服務器3rd_session 已經過期,這(zhè)時(shí)候怎麽辦,是(shì)否要(yào / yāo)重新走一遍登錄流程。
  2. wx.checkSession()已過期,這(zhè)種情況下,當然不(bù)管3rd_session是(shì)否過期,都需要(yào / yāo)重新走一遍登錄流程來(lái)重置, 這(zhè)樣處理對嗎。

根據以(yǐ)上(shàng),那是(shì)不(bù)是(shì)每次http請求都要(yào / yāo)先wx.checkSession()來(lái)檢測是(shì)否過期呢。并且我懷疑會有情況一出(chū)現的(de)可以(yǐ),這(zhè)個(gè)過期并不(bù)能判定3rd_session是(shì)否過期。

所以(yǐ),感覺很混亂。想知道(dào)大(dà)家是(shì)怎麽處理的(de)。

答:我認爲(wéi / wèi),既然自己的(de)服務器已經維護了(le/liǎo)一套session,客戶端是(shì)沒有必要(yào / yāo)關注wx.checksession() 的(de)。

如果想知道(dào)是(shì)否過期,問自己的(de)服務器就(jiù)好了(le/liǎo),就(jiù)像樓上(shàng)所說(shuō),小程序的(de)這(zhè)些接口沒有次數限制,由服務端自己去處理
1.3rd_session未過期,session_key過期,則服務器自己更新session_key就(jiù)好
2.3rd_session過期,session_key未過期,更新服務器3rd_session就(jiù)好(重新走流程)

可以(yǐ)試試将獲取到(dào)的(de) session 登錄信息存到(dào) sessionStorage 裏面。

2、微信小程序的(de)轉發方法 onShareAppMessage 内可以(yǐ)定義轉發内容之(zhī)外的(de)邏輯嗎?

根據文檔 轉發 ,小程序内的(de)轉發方法 onShareAppMessage 需要(yào / yāo)直接返回一個(gè)包含轉發内容的(de)對象,該對象内的(de) path 值爲(wéi / wèi)接受轉發者看到(dào)的(de)頁面路徑。例如

Page({
  onShareAppMessage: function (res) {
    return {
      title: '自定義轉發标題',
      path: '/page/user?queryId=123',
      success: function(res) {
        // 轉發成功
      },
    }
  }
})

假如拼接 path 值所需的(de) queryId 是(shì)由一個(gè)請求返回的(de),即不(bù)能同步獲取到(dào),例如

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 有沒有什麽方法可以(yǐ)使以(yǐ)上(shàng)的(de) onShareAppMessage 方法直接返回有效的(de) queryId 呢,用 promise 之(zhī)類的(de)話?


答:我改了(le/liǎo)那個(gè)weixin.js

還有種就(jiù)是(shì)可以(yǐ)不(bù)傳link,會動态獲取當前url,也(yě)就(jiù)是(shì)你可以(yǐ)在(zài)url上(shàng)附加#aa這(zhè)種,也(yě)可以(yǐ)獲取到(dào)

3、