欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:微信小程序手機號授權(quán)登錄

柚子快報邀請碼778899分享:微信小程序手機號授權(quán)登錄

http://yzkb.51969.com/

?微信小程序--登錄授權(quán),一鍵獲取用戶微信手機號并登錄

獲取手機號

我們這個后臺代碼已經(jīng)提前啟動了啊,這個后端代碼是java開發(fā)的,使用的是springboot框架開發(fā)的,數(shù)據(jù)庫使用的是mybatis-plus,這個代碼是如何通過小程序端獲取手機號碼的呢,就是誰使用這個小程序就獲取誰的代碼,根據(jù)不同的人獲取不同的代碼,現(xiàn)在我們演示一下就是我們?nèi)绾潍@取這個手機號碼啊,就是手機號,通過點擊這個按鈕來獲取

??獲取手機號

必須寫成這樣子,這個getPhoneNumber就是獲取手機號的意思當然了這個getphonenumber改成其他的名字也可以,為了統(tǒng)一就都寫出了這個getphonenumber,然后就會執(zhí)行這個代碼

getPhoneNumber(e)?{

????console.log(e.detail.errMsg)

????console.log(e.detail.iv)

????console.log(e.detail.encryptedData)

????console.log(app.globalData.session_key)

????//session_key?這個是全局變里的參數(shù),我app。js獲取后保存在全局變量的

????get_phone(e.detail.encryptedData,app.globalData.session_key,e.detail.iv).then(res?=>?{

??????console.log(res)

??????console.log(res.data.phoneNumber);

??????this.setData({

????????phone:?res.data.phoneNumber

??????})

????})

獲取這個手機號碼需要三個參數(shù),

這個ssesion_key在微信登錄的時候,會有一個sesssion_key保存在我們的全局變量里面,然后我們使用的時候就會拿出這個sesssion_key,這個接口會接受微信小程序的一個code,然后拿到code我們會通過一系列的東西先拿到一個session_key,拿到這個session_key之后呢,

getPhoneNumber(e)?函數(shù)會在用戶授權(quán)并成功獲取手機號碼后被調(diào)用,參數(shù)?e?是微信小程序傳遞過來的事件對象,其中包含了加密后的手機號信息。 首先通過?console.log?輸出一些關(guān)鍵信息:

e.detail.errMsg:輸出獲取手機號的結(jié)果信息,用于判斷是否成功獲取。e.detail.iv:加密算法的初始向量,用于配合session_key解密手機號數(shù)據(jù)。e.detail.encryptedData:加密后的用戶手機號數(shù)據(jù)。 console.log(app.globalData.session_key):輸出全局變量?app.globalData.session_key?的值,這是微信登錄時返回的 session_key,用于后續(xù)解密操作。 調(diào)用異步方法?get_phone(e.detail.encryptedData, app.globalData.session_key, e.detail.iv),該方法接收三個參數(shù),分別是加密后的手機號數(shù)據(jù)、session_key 和 iv,用于發(fā)起解密請求,獲取真實的手機號碼。 在?get_phone?方法的 Promise 結(jié)果(即?then?方法中):

console.log(res):輸出整個解密后的響應(yīng)結(jié)果。console.log(res.data.phoneNumber):輸出解密后的手機號碼。使用?this.setData({ phone: res.data.phoneNumber })?將解密后的手機號碼設(shè)置到當前頁面的data中,以便在頁面上展示或進一步使用。

? 這段代碼的主要目的是在用戶授權(quán)同意后,獲取并解密用戶的微信綁定手機號碼,并將其保存在頁面的?phone?屬性中。

然后這邊的話是拿到了一個session_key呢又拿到了一個openid,通過這個鏈接呢可以拿到我們的session_key和openid,

也就是說我們把這個session_key和openid啊都返回這個小程序端,然后這個小程序端就會做一個保存,也就是會保存到我們這個全局變量里面,

這個全局變量呢就在在這個app.js文件里面,就是這個微信小程序啟動的時候呢,它會做微信登陸的一個動作啊

這就是我們微信登錄的一個動作啊,這是封裝的一個小程序登錄,不是小程序自帶的啊,

然后我們微信登錄在這個代碼里面啊,然后這個代碼是自己封裝的啊,

實際上就是調(diào)用wx.login,wx.login就會有這個code,這個code 呢就是傳回springboot api的那個code,

這邊呢就算是說拿到我們的session_key和open_id全都保存到全局變量里面,

也就是我們獲取手機號的話我們需要這三個參數(shù)

然后調(diào)用這個封裝的getphone方法,獲取手機號解密

調(diào)用這個api呢實際上就是調(diào)用后端的這個api,

把他三個參數(shù)全部傳遞過來,然后呢進行解密,解密后的數(shù)據(jù)通過我們的這個工具類,就是通過這些參數(shù)解析出來我們的數(shù)據(jù)也就是我們的電話號碼,

這是Java后端的一個RESTful API接口,用于接收前端傳來的加密數(shù)據(jù)并解密出微信用戶的手機號碼。具體說明如下:

該方法名為?getPhoneNumber_jiemi,接收三個GET請求參數(shù):

encryptedData:這是經(jīng)過微信加密算法加密過的用戶手機號碼數(shù)據(jù)。iv:加密算法的初始向量(Initialization Vector),用于解密過程。session_key:微信登錄接口返回的會話密鑰,也是解密所需的重要參數(shù)。 方法首先打印出傳入的?session_key、encryptedData?和?iv?參數(shù),用于調(diào)試和日志記錄。 然后嘗試使用?AESUtils.decrypt?方法對加密數(shù)據(jù)進行解密,該方法可能來自自定義的工具類?AESUtils,通過傳入的?encryptedData、session_key、iv?以及字符編碼 "UTF-8" 進行解密操作。 解密成功后,將解密得到的字符串轉(zhuǎn)換成一個?JSONObject?對象(使用阿里巴巴 Fastjson 庫),并返回這個包含手機號碼信息的JSON對象。 如果在解密過程中發(fā)生異常,會捕獲異常并打印堆棧信息,最后返回?null。

總之,這段代碼的目的就是對接收到的微信加密手機號數(shù)據(jù)進行解密處理,并以JSON格式返回解密后的手機號信息。

這個返回的數(shù)據(jù)啊就是我們的電話號碼啊

然后把我們的真實號碼賦給我們的phone就可以了

這個就是我們獲取手機號的一個方法,這個呢就是一個解密的工具類,把這個無序的字符串啊解密成我們的電話號碼,

然后這個也是解析數(shù)據(jù)的一個工具類

這個數(shù)據(jù)就是加密的一個數(shù)據(jù),這個導航和小程序輪播都是可以去修改的

柚子快報邀請碼778899分享:微信小程序手機號授權(quán)登錄

http://yzkb.51969.com/

參考鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19047582.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄