微信小程序是張小龍?jiān)?017年推出的一款不需要下載就可以是使用的應(yīng)用,用戶只需掃一下就可以使用軟件,實(shí)現(xiàn)了觸手可及,不需要下載,隨用隨走,極其方便,目前也吸引了很多人投入到微信小程序開(kāi)發(fā)當(dāng)中來(lái)。
其實(shí),這里說(shuō)的不是微信小程序的授權(quán)機(jī)制,而是登錄態(tài)的機(jī)制。
微信小程序里面的授權(quán),是對(duì)特定接口的授權(quán)。
微信官方已經(jīng)給微信小程序封裝了很多API接口。
當(dāng)調(diào)用wx.login()時(shí),就可以向服務(wù)器發(fā)起請(qǐng)求,得到code。
在微信公眾號(hào)里,是需要搭建者在服務(wù)器設(shè)置好鏈接的。
客戶端拿到code碼是需要發(fā)送給服務(wù)器的,微信不意見(jiàn)客戶端直接向微信發(fā)送code。
在服務(wù)器接收到code碼后,再攜帶這appid,secret去訪問(wèn)微信服務(wù)器,微信服務(wù)器會(huì)返回openid,session_key。
其中:
1.openid是用戶標(biāo)識(shí)。
2.session_key是解密用的。因?yàn)橛械慕涌诜祷貋?lái)的數(shù)據(jù)是加密的,比如當(dāng)咱們想獲取unionid時(shí)。
當(dāng)搭建者服務(wù)器拿到微信返回的openid,session_key后,會(huì)自己生成一個(gè)3rd_session (最好和openid相關(guān)聯(lián))也可以叫做一個(gè)token吧。
然后把這個(gè)3rd_session返回給客戶端,并且在服務(wù)器的session中存入以3rd_session為key,openid+session_key為value的數(shù)據(jù)。
客戶端接收到這個(gè)3rd_session后,也寫入在storage里。這樣用戶重新進(jìn)入微信小程序后,調(diào)用wx.checksession()就可以檢測(cè)登錄態(tài)。
另外把這個(gè)3rd_session寫入客戶端里,也使得咱們的接口更加合理。
因?yàn)橛行┙涌谑枪步涌?,有些接口是需要?quán)限控制的。而這個(gè)3rd_session就是用戶的唯一標(biāo)識(shí)符。
1)App登錄前,會(huì)進(jìn)行一次握手建立登錄前的安全信道
至此,AppClient 和 AppServer 之間的登錄前安全信道建立完成,之后一直至操作登錄票據(jù)登錄AppServer之前,AppClient 和 AppServer都操作psk作為密鑰
加密報(bào)文,并把密文+ HMac-SHA256的MAC進(jìn)行Base64Encoding,并帶上temp_uin一并發(fā)送出去。
2)利用微信SSO換取登錄票據(jù)
當(dāng)用戶點(diǎn)擊微信登錄按鈕時(shí),會(huì)觸發(fā)利用微信SSO換取登錄票據(jù)事件。此部分需在登錄前安全信道中進(jìn)行。
微信小程序功能有哪些?
目前微信小程序的功能有七大功能,包括線下掃碼,消息通知和對(duì)公眾號(hào)進(jìn)行關(guān)聯(lián),微信小程序和公共號(hào)進(jìn)行關(guān)聯(lián),能實(shí)現(xiàn)兩者之間的跳轉(zhuǎn),這也是小程序不存在入口的原因之一。
以上就是對(duì)微信小程序是什么的全部介紹,廣力云多用戶商城系統(tǒng)有著多年電商小程序商城系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn),如果有商家需要開(kāi)發(fā)電商小程序系統(tǒng),歡迎咨詢!
專業(yè)微信營(yíng)銷顧問(wèn)
“Hi~ 感謝關(guān)注廣力云
如果您想要深入合作請(qǐng)聯(lián)系客服!
微信號(hào):13332948893” 咨詢電話:13332948893
添加客服微信