uniapp小程序的授權(quán)描述
1、微信小程序通過uni.login()方法可以獲取到微信提供的code
2、通過登錄獲取的code碼可以以獲取用戶唯一標(biāo)識(shí)openid以及會(huì)話密鑰sessionkey用于解密獲取手機(jī)的加密信息
3、通過微信提供的獲取微信手機(jī)號(hào)的方法getphonenumber拿到encryptedData iv兩個(gè)字段的內(nèi)容
4、通過微信提供的解密方法:可以拿到最終的手機(jī)號(hào)
5、獲取用戶的頭像,昵稱等直接調(diào)用uni.getUserProfile()方法即可
1.使用微信小程序獲取code
<view @click="hqCode">登錄</view>
hqCode(){ // 獲取登錄憑證
uni.login({
provider: 'weixin',
success: res => {
console.log(res)
}
});
}
正常返回內(nèi)容如下:
2、通過登錄獲取的code碼可以以獲取用戶唯一標(biāo)識(shí)openid以及會(huì)話密鑰sessionkey用于解密獲取手機(jī)的加密信息
<view class="" @click="hqJMXX">獲取密鑰sessionkey</view>
hqJMXX(){ // 獲取密鑰 === 需要登錄才可以獲取密鑰
uni.request({
url: 'https://api.weixin.qq.com/sns/jscode2session',// 請(qǐng)求微信服務(wù)器
method:'GET',
data: {
appid: '這里是你的小程序aphid', //你的小程序的APPID
secret: '這里是你小程序生成的密鑰', //你的小程序秘鑰secret,
js_code: '第一步登錄拿到的code', //wx.login 登錄成功后的code
grant_type:'authorization_code' //此處為固定值
},
success: (res) => {
console.log('獲取信息',res);
}
});
},
下面是正確返回值
錯(cuò)誤信息如下原因:傳遞參數(shù)不正確
如何查看自己appid與小程序密鑰:
登錄網(wǎng)址:https://mp.weixin.qq.com/wxamp/devprofile/get_profile?token=197451409&lang=zh_CN
3、通過微信提供的獲取微信手機(jī)號(hào)的方法getphonenumber拿到encryptedData iv兩個(gè)字段的內(nèi)容
前情提要: 在使用uniapp開發(fā)小程序時(shí),獲取用戶手機(jī)號(hào)碼需要提交商家信息。這是因?yàn)楂@取用戶手機(jī)號(hào)碼需要使用微信開放平臺(tái)的接口,而微信開放平臺(tái)要求開發(fā)者必須先進(jìn)行認(rèn)證,提交商家信息后才能使用該接口。商家信息包括企業(yè)名稱、營(yíng)業(yè)執(zhí)照、聯(lián)系人信息等。只有通過認(rèn)證的開發(fā)者才能使用微信開放平臺(tái)的接口,包括獲取用戶手機(jī)號(hào)碼的接口。
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">獲取電話</button>
getPhoneNumber(res){ // 獲取手機(jī)號(hào)
console.log(res)
this.phone_code = res.detail.code // 獲得的手機(jī)code
this.phone_encryptedData = res.detail.encryptedData //用于解密
this.phone_iv = res.detail.iv // 用于解密
},
返回值如下:
4.通過微信提供的解密方法:可以拿到最終的手機(jī)號(hào)
下載引入的文件鏈接地址:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html
<view @click="jiemi">點(diǎn)擊解密</view>
import WXBizDataCrypt from "@/static/wx/WXBizDataCrypt.js" // 需要引入
jiemi(){ // 解密需要appid 會(huì)話密鑰;然后需要手機(jī)號(hào)的加密字段
let pc = new WXBizDataCrypt('這里是appid',this.session_key);
let data = pc.decryptData(this.phone_encryptedData , this.phone_iv);
console.log(data) //data就是最終解密的用戶信息
this.phone = data.phoneNumber // 手機(jī)號(hào)
}
下面是返回值:
5、獲取用戶的頭像,昵稱等文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-522786.html
<view class="" @click="get_user">獲取用戶信息</view>
get_user(){ // 獲取用戶信息
uni.getUserProfile({
desc: '用戶登錄',
success: res => {
console.log(res)// 用戶的信息
this.user_img = res.userInfo.avatarUrl //微信頭像
this.user_name = res.userInfo.nickName // 微信昵稱
}
})
},
下面是獲取用戶得返回值:
為什么獲取的信息是加密的這一點(diǎn)我也不是很清楚,如果有高手還請(qǐng)指點(diǎn)一二文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-522786.html
到了這里,關(guān)于uniapp在小程序登錄,獲取用戶信息,獲取手機(jī)號(hào)等流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!