注冊登錄

關于微信小程序登陸機制

2018-10-15
導讀:其實,這里說的不是小程序的授權機制,而是登錄態(tài)的機制。 小程序里面的授權,是對特定接口的授權。 微信官方已經(jīng)給小程序封裝了很多API接口。 當調(diào)用wx.login()時,就可以向服務器...
其實,這里說的不是微信小程序的授權機制,而是登錄態(tài)的機制。 
 
微信小程序里面的授權,是對特定接口的授權。
 
微信官方已經(jīng)給微信小程序封裝了很多API接口。 
 
當調(diào)用wx.login()時,就可以向服務器發(fā)起請求,得到code。
 
在微信公眾號里,是需要搭建者在服務器設置好鏈接的。
 
客戶端拿到code碼是需要發(fā)送給服務器的,微信不意見客戶端直接向微信發(fā)送code。
 
在服務器接收到code碼后,再攜帶這appid,secret去訪問微信服務器,微信服務器會返回openid,session_key。 
 
其中:
 
1.openid是用戶標識。
 
2.session_key是解密用的。因為有的接口返回來的數(shù)據(jù)是加密的,比如當咱們想獲取unionid時。
關于微信小程序登陸機制

當搭建者服務器拿到微信返回的openid,session_key后,會自己生成一個3rd_session (最好和openid相關聯(lián))也可以叫做一個token吧。
 
然后把這個3rd_session返回給客戶端,并且在服務器的session中存入以3rd_session為key,openid+session_key為value的數(shù)據(jù)。
 
客戶端接收到這個3rd_session后,也寫入在storage里。這樣用戶重新進入微信小程序后,調(diào)用wx.checksession()就可以檢測登錄態(tài)。
 
另外把這個3rd_session寫入客戶端里,也使得咱們的接口更加合理。
 
因為有些接口是公共接口,有些接口是需要權限控制的。而這個3rd_session就是用戶的唯一標識符。
 
1)App登錄前,會進行一次握手建立登錄前的安全信道
關于微信小程序登陸機制
 
 至此,AppClient 和 AppServer 之間的登錄前安全信道建立完成,之后一直至操作登錄票據(jù)登錄AppServer之前,AppClient 和 AppServer都操作psk作為密鑰
 
加密報文,并把密文+ HMac-SHA256的MAC進行Base64Encoding,并帶上temp_uin一并發(fā)送出去。
 
2)利用微信SSO換取登錄票據(jù)
 
當用戶點擊“微信登錄”按鈕時,會觸發(fā)利用微信SSO換取登錄票據(jù)事件。此部分需在登錄前安全信道中進行:
 
關于微信小程序登陸機制
重磅推薦:小程序開店目錄

第一部分:小商店是什么

第三部分:如何登錄小商店

第四部分:開店任務常見問題

第五部分:小商店可以賣什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結算

第十部分:小程序客服

第十一部分:小程序服務商

第十二部分:小程序游戲開發(fā)

電話咨詢 微信咨詢 預約演示 0元開店