在現實社會中,我們每個人都(dōu)有個身份ID:身份證。那麼(me)對(duì)于虛拟世界的互聯網來說,這(zhè)個身份證明就是「賬号+密碼」。在互聯網普及之,智能(néng)手機與移動互聯網發(fā)展迅猛。手機也成(chéng)爲每個人必不可少的移動設備,同時移動互聯網也已經(jīng)深深融入每個人的現代生活當中。
所以,相較于郵箱,目前手機号碼與個人的聯系更加緊密,而且越來越多的移動應用出現,采用手機号碼作爲用戶名的注冊方式也得到了廣泛的使用。
到了 2020 年,微信用戶規模達 12 億。那麼(me),微信賬号,起(qǐ)碼在,已成(chéng)爲代互聯網世界的「身份标識」。
而對(duì)微信小程序而言,天然就能(néng)知道(dào)當前用戶的微信賬号ID。微信允許小程序應用,能(néng)在用戶無感知的情況下,悄無聲息的「登錄」到我們的小程序應用中去,這(zhè)個就是我們經(jīng)常稱之爲的「靜默登錄」。
其實微信小程序的登錄,跟傳統 Web 應用的「單點登錄」本質是樣的概念。
單點登錄:在 A 站登錄了,C 站和 B 站能(néng)實現快速的「靜默登錄」。
微信小程序登錄:在微信中,登錄了微信賬号,那麼(me)在整個小程序生态中,都(dōu)可以實現「靜默登錄」。
由于 Http 本來是無狀态的,業界基本對(duì)于登錄态的般做法:
cookie-session:常用于浏覽器應用中;
access token:常用于移動端等非浏覽器應用。
在微信小程序來說,對(duì)于「JS邏輯層」并不是個浏覽器環境,自然沒(méi)有 Cookie,那麼(me)通常會使用 access token 的方式。
2. 關于「授權」
對(duì)于需要更進(jìn)步獲取用的用戶昵稱、用戶手機号等信息的産品來說。微信出于用戶隐私的考慮,需要用戶主動同意授權。小程序應用才能(néng)獲取到這(zhè)部分信息,這(zhè)就有了目前的小程序「授權用戶信息」、「授權手機号」的交互了。
出于不同的用戶信息敏感度不同的考慮,微信小程序對(duì)于不同的用戶信息提供「授權」的方式不盡相同:
調用具體 API 方式,彈窗授權:例如調用 wx.getLocation() 的時候,如果用戶未授權,則會彈出地址授權界面(miàn);如果拒絕了,就不會再次彈窗,wx.getLocation() 直接返回失敗。
方式:僅支持:用戶敏感信息,用戶手機号,需要配合端進(jìn)行對(duì)稱加解密,方能(néng)拿到數據;如果用戶已拒絕,再次點擊按鈕,仍然會彈窗。