微信小程式 http請求的session管理,小程式session

來源:互聯網
上載者:User

小程式 http請求的session管理,小程式session

小程式 http請求的session管理

作為一個開發JavaWeb應用的程式猿,都喜歡將使用者登入後的使用者資訊(比如說使用者id,使用者名稱稱)放入session中儲存,之後在商務邏輯的開發中需要用到使用者資訊的時候就可以輕鬆又方便的從session中取到值。最近在開發小程式的時候碰到一個問題就是每次小程式請求的時候都會改變sessionid,這就會導致在後面的請求中取不到登入時儲存在session中的使用者資訊,其實在前後端分離開發的時候也會碰到這個問題,後端程式員負責伺服器端開發,提供介面程式,前端程式員負責用戶端開發,調用後端程式員提供的介面程式擷取資料,此時,前端程式員請求的每個介面程式也是都會改變sessionid的,因些也無法擷取到登入時儲存在session裡的使用者資訊。

    常見的session保持方式是,當瀏覽器向服務端發起http請求時,服務端檢查在http頭部cookie參數裡是否包含sessionid,如果有sessionid就根據sessionid去查看儲存在伺服器端的session,session裡儲存的當前會話的一些資訊。如果sessionid沒有服務端就會分配一個,寫到cookie欄位裡,瀏覽器下次發起其它請求的時候帶上。

    因此,為瞭解決上面我說的問題,我們可以這樣做,用戶端在第一次請求伺服器時,也就是登入的時候獲得一個sessionid,在本機存放區起來,然後在之後每次請求伺服器的時候就在header裡面帶上這個sessionid,寫到cookie欄位裡。但是有個問題就是,你本機存放區了這個sessionid後那麼以後每次都會是這個sessionid,所以建議在程式每次啟動的時候先清空本機存放區的sessionid,然後發送首次請求擷取新的sessionid。

如下為ajax請求時在header中帶上sessionid的用戶端代碼:

$.ajax({      type: 'post',      headers: {        'Cookie':'JSESSIONID=1k2naixut68f81q5rpr0c3n4vc'      },      data: {},      dataType: 'json',      timeout: 30000,      url: '/test',      success: function (res) {        alert("success");      },      error: function (e) {        alert("false");      }    })

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.