注意2021年4月28日24時(shí)后發(fā)布的小程序新版本無法通過wx.getUserInfo獲取用戶信息!
新的wx.getUserInfo有調(diào)整??梢垣@取code,繼而獲取unionId但是無法獲取到用戶信息,獲取到的是匿名信息! 該接口對(duì)用戶無感,底部彈出框!
如果要獲取用戶昵稱等信息,則調(diào)用wx.getUserProfile接口,底部彈框,用戶授權(quán)。
具體看原文!
官方原文
微信登錄流程官方文檔
注意小程序全權(quán)負(fù)責(zé)session_key的有效性,前端小程序通過wx.checkSession接口獲取有效性,若無效則調(diào)用wx.login 獲取新的code , 把code傳遞給服務(wù)器, 讓服務(wù)器重新給小程序新的token 。 因?yàn)榉?wù)器無法知道session_key 是否過期,所以只有小程序來判斷!
因此建議每次小程序調(diào)用服務(wù)器端提供的 需要登錄用戶才可以調(diào)用的API 時(shí),需要在前面調(diào)用這個(gè)邏輯,如下代碼邏輯。
wx.checkSession({
success () {
//session_key 未過期,并且在本生命周期一直有效
//session有效才調(diào)用你的業(yè)務(wù)接口?。。?!
},
fail () {
// session_key 已經(jīng)失效,需要重新執(zhí)行登錄流程
wx.login() //重新登錄
}
})
總結(jié)。后臺(tái)同學(xué)注意,小程序登錄傳過來的code, code+appId+appSecret 獲取的session_key 一定不要設(shè)置過期時(shí)間,這個(gè)時(shí)間是前端小程序來告訴你的。 如果你之前的token設(shè)置了過期時(shí)間,我建議最好針對(duì)小程序單獨(dú)加一個(gè)wxToken字段, 默認(rèn)wxToken的有效期是永久的。
以上邏輯的支撐理由如鏈接 微信官方文檔
重點(diǎn)我截圖了,如下:

另外wx.login
可以獲取到code (前端用戶是無感的)。服務(wù)器可以通過code再調(diào)用auth.code2Session
獲取到

wx.getUserInfo
是小程序底部彈框,需要用戶授權(quán)的scope.userInfo

微信小程序登錄流程圖
