小程序獲取手機號失敗是什么原因(小程序獲取手機號沒反應(yīng))
本篇文章給大家談?wù)勑〕绦颢@取手機號失敗是什么原因,以及小程序獲取手機號沒反應(yīng)對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
靈動長春登錄顯示獲取手機號碼失敗
不是實名手機號。靈動長春登錄時,顯示獲取手機號碼失敗,表示的是使用的不是實名手機號,所以無法進行獲取。靈動長春微信小程序是由長春市政務(wù)服務(wù)和數(shù)字化建設(shè)管理局打造的城市智能體社會側(cè)服務(wù)移動端入口,面向長春市民提供公共服務(wù)、社區(qū)服務(wù)的智能程序。
圳幫扶小程序登錄微信時總顯示無此手機號
圳幫扶小程序登錄微信時總顯示無此手機號原因是小程序不穩(wěn)定導致。
1、在微信小程序首頁,點擊右下角我的選項。
2、進入后點擊一下左上角的登錄選項。
3、在頁面點擊一下微信賬號快捷登錄選項。
4、在界面進行獲取手機號并點擊允許即可。
微信小程序(抖音小程序):手機號碼解析失敗解決方案
本文以抖音小程序(微信小程序獲取流程和接口一模一樣)為例,最近博主在做一個抖音小程序的小項目,前端在獲取用戶手機號的時候,需要調(diào)用 tt.login 接口進行登錄,登錄后返回一個code,這個code有3分鐘的失效時間,根據(jù)這個code可以獲取到sessionKey,這個sessionKey類似于對稱加密的密鑰,會對用戶信息進行加密。在獲取用戶信息的時候,前端
需要將 button 組件 open-type 的值設(shè)置為 getPhoneNumber。用戶點擊后會彈出一個授權(quán)彈窗讓用戶確認(若該用戶賬戶未綁定手機號碼會執(zhí)行一次綁定手機號碼的流程;授權(quán)彈窗每次使用都會彈出)。 用戶同意后,開發(fā)者可以通過 bindgetphonenumber 事件回調(diào)獲取到一個加密數(shù)據(jù),開發(fā)者可以把該數(shù)據(jù)傳回到自己的服務(wù)端進行解密獲取手機號。
獲取到的加密數(shù)據(jù)需要使用sessionKey進行解密,因此在獲取用戶信息前,需要登錄一次,獲取到code,然后根據(jù)code獲取到sessionKey,再根據(jù)sessionKey進行加密數(shù)據(jù)的解密,解析出手機號。
根據(jù)博主猜測,抖音在登錄后會生成一個code,和一個對應(yīng)的sessionKey,在會話期間(session未過期)的時候獲取用戶信息,會將用戶信息使用sessionKey進行數(shù)據(jù)的加密,進行數(shù)據(jù)的解密也需要使用到sessionKey。code和sessionKey是對應(yīng)的,但是它們的失效期是不一樣的,code的失效期是3分鐘,sessionKey的失效時間是不定的,只要用戶活躍在頁面上都不會失效。在獲取到code的3分鐘內(nèi)調(diào)用 code-2-session 接口,會獲取到sessionKey,如果3分鐘后根據(jù)code獲取sessionKey將會獲取失敗,因此解密也會失敗。
因為無法判斷用戶什么時候開始獲取用戶信息,所以用戶一進入頁面,前端就會調(diào)用 tt.login 接口進行登錄,然后放到localstorage緩存中,在用戶點擊按鈕時,彈出授權(quán)框用戶確認后獲取到用戶信息的加密數(shù)據(jù),然后前端將緩存的code和加密數(shù)據(jù)一并傳給后端。后端用code先去調(diào)用 code-2-session 接口獲取到sessionKey,然后以sessionKey為密鑰進行AES解密,獲取到手機號返回給前臺。整個流程看起來沒什么問題,但是一旦用戶在頁面停留時間超過3分鐘,然后再去獲取用戶信息會失敗,主要是因為code已經(jīng)失效,獲取sessionKey會失敗。
目前的問題就是過了code的有效期后,根據(jù)code獲取sessionKey失敗。那么在前端login獲取到code后,先緩存到本地,然后立即調(diào)用后臺接口去獲取sessionKey然后緩存到redis里面,key為code,value為sessionKey。失效時間根據(jù)自己的業(yè)務(wù)設(shè)置(小程序頁面用戶不會停留太久,因此緩存失效時間設(shè)置為30分鐘),用戶退出小程序后,會重新login,然后也會存一份新的code和sessionKey的對應(yīng)值。
用戶在授權(quán)到用戶信息后,前端直接將緩存的code和加密后的用戶信息上傳到服務(wù)到進行解密。服務(wù)端根據(jù)code從緩存中先獲取到sessionKey,然后再用sessionKey進行解密,解析出手機號進行返回。
以上解決辦法每次基本都可以獲取手機號成功,但是也會存在一些問題
UserInfoController主要提供兩個接口,一個是解密手機號和code2seesion操作
TiktokEncryptedParam 主要是前端傳過來的code和加密后的數(shù)據(jù)
TiktokUserInfoSPI 主要是對接口的封裝
TiktokUserInfoSPIAdapter 實現(xiàn)接口
使用AES對稱加密
關(guān)于小程序獲取手機號失敗是什么原因和小程序獲取手機號沒反應(yīng)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
掃描二維碼推送至手機訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。