前言
微信小程序凡是需要記錄用戶信息都需要登錄,但是也有幾種不同的登錄方式,但是在小程序部分的登錄流程是一樣的。之前就朦朦朧朧地用之前項目的邏輯改改直接用了,這個新項目要用就又結合官方文檔重新梳理了下,並記錄一下,好記性不如爛筆頭嘛,哈哈。
幾種登錄流程設計
利用OpenId 創建新用戶
這種方式我的理解大體上就是一種靜默登錄,獲取用戶信息之后解密用戶信息並通過OpenId直接創建新用戶
利用Unionid 創建新用戶
這種方式的特點是可以利用Unionid實現多個小程序、公眾號、已有登錄體系的數據互通。
利用現有登錄體系
這是筆者目前在使用的一種登錄方式,大體上是復用了現有的登錄體系,授權獲取個人信息之后輸入手機號和驗證碼就能完成登錄了,同時OpenId與個人信息都存在了我們自己的服務器。
幾個核心API和核心字段
- wx.login() 調用接口獲取登錄憑證(code)
- code2Session 登錄憑證校驗,為了獲取會話秘鑰session_key
- wx.checkSession() 檢查登錄態是否過期
- wx.getSetting() 獲取用戶的當前設置
- wx.getUserInfo 獲取用戶信息,獲取之后需要解密數據
- session_key 會話秘鑰,是通過調用接口獲取登錄憑證獲取的,是有時效性的
主要流程
最后再附上一張官方文檔上登錄流程圖
總結
由於其他兩種登錄方式還沒使用過,我單就使用過的利用現有登錄體系這種方式總結一下。
當一個用戶來使用我們的小程序時,在一個需要登錄的頁面,會經歷以下幾個步驟:
tips: 由於最新的文檔要求獲取用戶信息必須用戶主動觸發,不能開發者自動調取了,所以現在需要做個授權頁面引導用戶點擊