2025年微信授權(quán)登錄全方案
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
導(dǎo)讀 這篇文章是關(guān)于 2025 年微信小程序授權(quán)登錄的全方案盤點(diǎn)。介紹了三種登錄方式:無(wú)感登錄,包括前端和后端的步驟;手機(jī)號(hào)登錄,個(gè)人賬號(hào)無(wú)法使用且收費(fèi),流程簡(jiǎn)化;用戶信息授權(quán)登錄,講述其歷史變遷及使用方法,可降低基礎(chǔ)庫(kù)版本獲取真實(shí)信息。還列舉了相關(guān)案例和代碼。 經(jīng)常做小程序的小伙伴都曾遇到過(guò)這個(gè)問(wèn)題,那就是小程序授權(quán)登錄,官方文檔經(jīng)常更新,API不時(shí)更新迭代,對(duì)于基礎(chǔ)庫(kù)版本等等,都有著既定要求。 按照以往方式再去做,發(fā)現(xiàn)行不通,折騰一上午,整個(gè)人沉默了,原來(lái)是官方又進(jìn)行了大改...... 目前為止,微信小程序登錄授權(quán),有三種方式,第一種是無(wú)感登錄,第二種是手機(jī)號(hào)登錄,第三種是用戶信息授權(quán)登錄比較經(jīng)典的就是飛豬小程序和順豐小程序,如果你不知道怎么做,可以去看看它們的樣式,一目了然 比如下面這個(gè)登錄首頁(yè)面,就屬于經(jīng)典的手機(jī)號(hào)登陸 點(diǎn)擊快速登錄,小程序會(huì)迅速調(diào)用用戶的手機(jī)號(hào)授權(quán) 再放一個(gè)案例,那就是用戶信息授權(quán)登錄,顧名思義,該登陸主要為了獲取用戶信息(姓名、性別、地址、昵稱等等),用于給個(gè)人中心模塊做鋪墊,圖中人名我這邊和諧掉,因?yàn)橐彩俏仪皟商靹傋鐾甑臉I(yè)務(wù)。 至于無(wú)感登錄,這里就不演示了,因?yàn)闊o(wú)感無(wú)感,顧名思義就是沒(méi)有感覺(jué),用戶是看不出來(lái)授權(quán)的,所以直接講方法就好! 順便放上小程序開(kāi)發(fā)文檔:微信小程序官方文檔 1.無(wú)感登錄首先無(wú)感登錄是最簡(jiǎn)單的,步驟只有兩步,第一步是前端調(diào)用官方文檔API——wx.login,拿到登陸憑證code,通過(guò)wx.request()發(fā)起網(wǎng)絡(luò)請(qǐng)求,隨即傳給后端。 第二步,后端那邊利用code + appid + appsecret這三個(gè)數(shù)值,調(diào)用微信的auth.code2Session接口,拿到用戶唯一標(biāo)識(shí)openid 和 會(huì)話密鑰session_key,隨即定義token,將之與openid和session_key關(guān)聯(lián),最后再返回給前端。 前端拿到token,就很簡(jiǎn)單了,按照正常操作即可,比如拿token設(shè)置請(qǐng)求頭、存入vuex、pinia等等,順理成章直接寫即可,大家都能明白。 總結(jié)一點(diǎn):無(wú)感登錄,說(shuō)白了,就是拿小程序token的過(guò)程,夠直白了吧! 至于有人會(huì)問(wèn),appid和appsecret是什么?看下圖即可!(都在你的小程序后臺(tái)里) 微信小程序開(kāi)放平臺(tái):官方傳送門 具體講一下方法,順便把代碼附在下面,大家可以直接移植! 首先要注意的是,調(diào)用wx.login的時(shí)候,你的小程序基礎(chǔ)庫(kù)版本,不能低于2.3.1 可以在你的原生小程序工具查看 其次再看看wx.login的傳參+返回值,重點(diǎn)關(guān)注success和fail,一個(gè)是成功回調(diào),一個(gè)是失敗回調(diào) 返回值是code,有時(shí)效限制,這里要注意的是,前端的appId,要和后端的appId一致。 有的人拿不同的appId去調(diào)用接口,最后會(huì)導(dǎo)致500報(bào)錯(cuò)! 代碼示例:(用uniapp的,將wx.login替換為uni.login即可),example.com/onLogin 這個(gè)是事例網(wǎng)址,需要替換為你們后端的接口,主要用來(lái)獲取token。
2.手機(jī)號(hào)登陸需要注意的是,個(gè)人賬號(hào),無(wú)法使用手機(jī)號(hào)登錄功能,并且該功能是收費(fèi)的。 標(biāo)準(zhǔn)單價(jià)每次組件調(diào)用成功,收0.03元,每個(gè)小程序賬號(hào)將有1000次體驗(yàn)額度,該1000次的體驗(yàn)額度為正式版、體驗(yàn)版和開(kāi)發(fā)版小程序共用,超額后,體驗(yàn)版和開(kāi)發(fā)版小程序調(diào)用同正式版小程序一樣,均收費(fèi)。 這一要說(shuō)明一點(diǎn)的是,相信很多人在網(wǎng)上都看到類似encryptedData、iv獲取手機(jī)號(hào)的方法,25年為止,微信又改版了,手機(jī)號(hào)登錄的流程又得到了簡(jiǎn)化。(前提是使用付費(fèi)服務(wù)) 流程為:調(diào)用bindgetphonenumber,返還code,這個(gè)code是限時(shí)+一次性的,服務(wù)器只需要拿著這個(gè)code去和微信換手機(jī)號(hào)就可以了 傳送門一:官方手機(jī)組件
這里要注意一點(diǎn),如果你用的是uniapp,那么bindgetphonenumber需要換為@getphonenumber 還是通過(guò)wx.login拿code,然后調(diào)用這個(gè)接口,具體要和后端商量,前端的工作并不多,調(diào)用而已 參數(shù)需要這幾個(gè) 與此同時(shí),返回值手機(jī)號(hào)就來(lái)了 所以手機(jī)號(hào)登錄沒(méi)那么復(fù)雜,重點(diǎn)是需要付費(fèi),不付費(fèi)的話,讓用戶自行輸入表單,也行,看具體業(yè)務(wù)實(shí)現(xiàn)方式 3.用戶信息授權(quán)登錄對(duì)于用戶授權(quán)登錄的問(wèn)題,那么就繞不過(guò)wx.getUserInfo和wx.getUserProfile的歷史淵源了。 早期的小程序開(kāi)發(fā),大家都是通過(guò)wx.getUserInfo拿到用戶頭像昵稱,結(jié)果2021年4月,微信社區(qū)改版,導(dǎo)致getUserInfo不再有授權(quán)流程,開(kāi)發(fā)者只能獲取到匿名信息。 比如名字,大家都叫做“微信用戶”,而頭像,接口返回的都是統(tǒng)一灰色頭像。 可這樣就帶來(lái)一個(gè)問(wèn)題,那就是不同用戶,昵稱頭像都一樣,完全不方面管理,所以wx.getUserProfile接口應(yīng)運(yùn)而生! 這一有一個(gè)行為,大家要注意,wx.getUserInfo獲取用戶信息,不會(huì)有底部彈窗,而wx.getUserProfile則會(huì)出現(xiàn)下方的底部彈窗(樣式看開(kāi)頭),根據(jù)你的需求自行選擇。 再到2022年10月,微信社區(qū)又改版了,就連wx.getUserProfile這個(gè)接口,也不給開(kāi)發(fā)者權(quán)限了,用戶名+頭像,全部變成了統(tǒng)一的“微信用戶”+灰色頭像。 講完這段歷史,我教你怎么用,如果你想獲取到用戶的真實(shí)信息,那么你可以把小程序基礎(chǔ)庫(kù),降低版本,可以選為2.25.4,也比較穩(wěn)定。 小程序官方對(duì)于低版本的基礎(chǔ)庫(kù),還是會(huì)提供完整功能的。我的建議是,你直接用wx.getUserProfile就好,底部也有彈窗信息。
作者:西紅柿燉前男友 鏈接:https://juejin.cn/post/7457926197163687970 來(lái)源:稀土掘金 著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。? 該文章在 2025/1/15 12:37:43 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |