微信小程序授權,獲取用戶信息


小程序登錄

    小程序可以通過微信官方提供的登錄能力方便地獲取微信提供的用戶身份標識,快速建立小程序內的用戶體系。

登錄流程時序

    

 

wx.login()

獲取 臨時登錄憑證code ,並回傳到開發者服務器
  1. 臨時登錄憑證 code 只能使用一次

auth.code2Session

換取 用戶唯一標識 OpenID 和 會話密鑰 session_key
  1. 會話密鑰 session_key 是對用戶數據進行 加密簽名 的密鑰。為了應用自身的數據安全,
  2. 開發者服務器不應該把會話密鑰下發到小程序,也不應該對外提供這個密鑰

UnionID 機制

 互通的用戶標識

如果開發者擁有多個移動應用、網站應用、和公眾帳號(包括小程序),可通過 UnionID 來區分用戶的唯一性,

因為只要是同一個微信開放平台帳號下的移動應用、網站應用和公眾帳號(包括小程序),用戶的 UnionID 是唯一的。

換句話說,同一用戶,對同一個微信開放平台下的不同應用,UnionID是相同的

小程序遷移到其他的開放平台下,unionID 是會改變的,而 openID 是不變的


    之后開發者服務器可以根據用戶標識來生成自定義登錄態,用於后續業務邏輯中前后端交互時識別用戶身份

開發者建議

步驟 作用 備注

1、當用戶打開小程序時訪問第一個頁面時,

先通過 wx.login,獲取用戶 openID

開發者拿到 openID 可以建立自身的帳號 ID 無需彈框授權
2、拿到 openID 后,判斷是新用戶還是老用戶

老用戶,可以直接登錄

新用戶,可先在首頁展示信息服務,再引導下一步操作

 
3、當需要獲取用戶頭像昵稱的時候,對用戶展示一個登錄頁面

這個頁面只有一個最重要的操作,引導用戶進行登錄

在頁面中加入一個 button 按鈕,並將 open-type 屬性設置為getUserInfo

  • 使用 open-data 方式或者開放數據域的方式展示用戶信息,整個過程無需用戶授權
  • 用 button 組件的方式獲得用戶授權后,調用 wx.getUserInfo 可以獲取用戶信息
  • 獲取過一次之后,用戶有可能改昵稱頭像,為了及時同步,最好定期獲取用戶信息
  • 用戶授權過一次后,又關掉了授權或本地刪除了小程序后需要重新獲得授權

授權登錄(頭像,昵稱等)

授權方式 解釋 建議
一次性授權  

常規寫法,

需要獲取用戶公開信息(頭像,昵稱等)時,判斷調取授權登錄接口,

但此方法如果不經處理的話,用戶如果拒絕授權或者刪除該微信小程序后,需要重新調取並獲取授權

此方法用戶體驗較差,不建議; ×
永久授權

在不必要使用用戶公開信息(頭像,昵稱等)時,不調取授權登錄接口,

只有在必要的時候再去判斷調取授權登錄接口並把獲取到的用戶公開信息存入數據庫

這樣在每次登錄時直接先運行指定函數從數據庫索取需要的用戶公開信息(頭像,昵稱等)即可,

此方法在刪除小程序后不用再次去授權登錄(因為在用戶第一次授權登錄時已經把用戶的公開信息存入數據庫了以后直接向數據庫索取即可)

建議使用;

可設置【更新資料】的按鈕

不授權

不需要授權登錄獲取用戶公開信息(頭像,昵稱等),

使用wx.login獲取用戶code並傳入后台,后台可以通過用戶的code值向微信要openID,然后通過openID就可以識別到指定用戶,

如果需要的話,前端要顯示的頭像、昵稱等這些信息可以使用自定義可編輯的功能,

當然,也可通過<open-data type=“userAvatarUrl”></open-data><open-data type=“userNickName”></open-data>

小程序提供的這個組件顯示用戶的頭像及昵稱(不過這個組件只有顯示功能),

用戶如果想直接使用自己的頭像昵稱,也可以自行授權(比如添加個引導按鈕什么之類的),

建議使用;

 

參考文檔:https://developers.weixin.qq.com/community/develop/article/doc/000a4e9d86002857cf687226851413


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM