1. 程式人生 > >從零開始做微信小程式後端---學習日記

從零開始做微信小程式後端---學習日記

wx.login(OBJECT)

呼叫介面獲取登入憑證(code)進而換取使用者登入態資訊,包括使用者的唯一標識(openid) 及本次登入的 會話金鑰(session_key)等。使用者資料的加解密通訊需要依賴會話金鑰完成。

  獲取到初步的目標,最基本應該實現的操作,可以接收到使用者的登入資訊並且把其中的一些資料儲存到資料庫中,並將這些資訊傳給前端,傳送request的操作在微信小程式自帶的API裡有,叫做wx.login,使用者獲取登入時,前端使用 wx.login來獲得跟伺服器的連線,用使用者登入憑證(code)來獲取使用者在這個應用裡的唯一標識,以及本次登入的會話金鑰(微信伺服器對使用者資料加密簽名的金鑰),此時分兩種情況: 第一種
是使用者第一次登入,生成使用者的唯一標識sessionid(加密並且讓其難失效)儲存進資料庫中並標明其openid將它們以鍵值對儲存,其中sessionid為key,openid和會話金鑰session_key為value,發出一個response,資料為本次的 會話金鑰和使用者的 唯一標識(openid),會話金鑰不應該在網路上傳輸, 第二種情況是使用者之前登陸過,接收前端傳送來的資料以後,使用code來提取原本儲存在資料庫中的使用者openid與生成會話金鑰;並且傳送給前端此使用者的sessionid。在使用者登入過小程式之後,前端可以使 wx.checkSession介面來
檢測當前使用者登入態是否有效,此時如果失效則進行上述的第二種情況,傳送給後端一個request,引數包含sessionid,用這個sessionid來在資料庫裡尋找其value(session_key和openid)。 注意:  返回的資料格式用 json格式儲存。            session_key在微信伺服器的儲存時間為30天。
  自己的理解說完了,這裡加一張官方認為應該做到的登入時序圖,這幾天的開發會按這個來進行。