微信小程序新版用戶授權


微信小程序在2021年3月30號對小程序的調整發布了一則公告:小程序登錄、用戶信息相關接口調整說明

總的來說就是原來的wx.getUserInfo接口接近於廢棄,希望我們改用新接口wx.getUserProfile

為什么說接近於廢棄呢,因為返回的數據結構沒有任何變化,但是里面的數據已經沒有任何意義了

wx.login({
      success: (res) => {
        console.log(res)
        wx.getUserInfo({
          success: (res) => {
            console.log(JSON.stringify(res))
          },
        })
      },
    })

  

打印結果

{
	errMsg: "login:ok",
	code: "061vm11w3k6L9W273N0w3ty6aq0vm11N"
}

{
	"errMsg": "getUserInfo:ok",
	"rawData": "{\"nickName\":\"微信用戶\",\"gender\":0,\"language\":\"\",\"city\":\"\",\"province\":\"\",\"country\":\"\",\"avatarUrl\":\"https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132\"}",
	"userInfo": {
		"nickName": "微信用戶",
		"gender": 0,
		"language": "",
		"city": "",
		"province": "",
		"country": "",
		"avatarUrl": "https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132"
	},
	"signature": "4d3f449f152df32d8013ca167f6a9d9bac3f5669",
	"encryptedData": "VFmQZFcrNTpaOxsV46htOLZlLxp+8d8qO8uXp9jjjHhLkhrrlyjUIILGrDJywZh1fXNL3E2vUTp1UTHs2HbYf2CDPpzI6cynj6C+YzYkLYqTMYCmOewVEoz3E3h3hehfwXmraIg0G+dvyAPoxz6jBTPsyr49imgwWMHc8EgrUqkc3d2q90rlsz/QOhQSpMVNhDJ4hONEqiqHHNDuFbClb2S1pSIA1MpDi9YQQhfOSBldK0I/B7hdEFHuDJdtKutOddlAdhcuf/JGqNG35K8O9yTdVkdXTNS/L4HS8jAZHQVhlEaWChp/mg/7Sl+w+0YOJnGIHQff6U84vw1lFxs1qITO7bUbaNFz0w0L7C3iJwvPQjINF4sYm8p95+HHzeHE8QyHcOhR4XZhj7/GwwqqBSuq5+YUPJoVau8o4t5xrYTRFUAFjgRt/eofKesX3TYpgNHC8+z2+XAxSg6A3hRSb0MEbvxbgRMA2igsZre2EYYayYtPR588imkolfgvdO97lEh78F9jpNwM2oula995pA==",
	"iv": "gx1Jotzr+azhcIgQ+3yFqA=="
} 

可以看到返回的信息是不包含用戶昵稱等信息的;頭像是一個面向所有用戶的默認頭像

我們對encryptedData進行解密得到結果如下

//通過jscode2session接口用code換取session_key

Array
( [session_key] => DoVkwxtLSaNI+dUxtBJ35g== [openid] => o-UKg4vLVl4Cpa5TZAEFeUp_j-bg [unionid] => oduLh1PZ1D94qW5LywAXfRpY1OMw )
//通過
session_key,iv對加密字符串encryptedData解密
Array ( [openId] => o-UKg4vLVl4Cpa5TZAEFeUp_j-bg [nickName] => 微信用戶 [gender] => 0 [language] => [city] => [province] => [country] => [avatarUrl] => https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132 [unionId] => oduLh1PZ1D94qW5LywAXfRpY1OMw [watermark] => Array ( [timestamp] => 1617767507 [appid] => wxb9d02 ) ) 

  解密效果只是多了包含用戶的openidunionId,用戶的其他信息 我們依然獲取不到

下面改用新街口調試

 <button wx:if="{{canIUseGetUserProfile}}" bindtap="getlogin"> 獲取頭像昵稱 </button>  

getlogin(){
    wx.getUserProfile({
      desc: '展示用戶信息', // 聲明獲取用戶個人信息后的用途,后續會展示在彈窗中,請謹慎填寫 
      success: (res) => {
        console.log(res)
        wx.login({//必須先獲取信息后再調用login,再login里調用信息接口調用不了
          complete: (res) => {
            console.log(res)
          },
        })
      }
    })
  },

 打印結果如下

{
	"errMsg": "getUserProfile:ok",
	"rawData": "{\"nickName\":\"AAA\",\"gender\":1,\"language\":\"zh_CN\",\"city\":\"Xuzhou\",\"province\":\"Jiangsu\",\"country\":\"China\",\"avatarUrl\":\"https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j2222xyQamU3pbDq0epMoiaj83F7LoTT40CMAcT5OUAeQdKb2lAJ4hqudggWJ9Wd05plQbw/132\"}",
	"userInfo": {
		"nickName": "AAA",
		"gender": 1,
		"language": "zh_CN",
		"city": "Xuzhou",
		"province": "Jiangsu",
		"country": "China",
		"avatarUrl": "https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLNiclWk0jG0jxyQamU3pbDq0epMoiaj83F7LoTT40CMAcTWd05plQbw/132"
	},
	"signature": "4f729de60e07afec005af561697046a7fb0ad6df",
	"encryptedData": "gpAbYEOQZCtlbeOioHmG7ZIKMe5GmIwfsZIY17u9jYlc46SBc+xXJkeiuYF5KGfEaCPxEfYWB/wDUHSK89dL4svzEOAGZqGomrFZWbmPvVxYBY7lVBnRlgXJZNDqoYSODHV4zHZHSIVBNzG4w2+eyIn3eE4cLYHAk+/nlrWezRAaoYPUUFLgBYGDoyWoJ50ys3K6k9Kzx9H4WkTnvXWx1lBf6gPrIG4MfU54WB9EdnkxTzPw3e4/nfnsdU6Ro2/D/Z/wG4fKOyWUO6j54x7Yfmqn3wVnYeccBqThwxvCtwS6WablYn2JowEN9U7zlugbjVHN3x9B3lfUFwgr3fYJZG20cC0xST5wWH505YZhqZEZ/VCkUYVvzFYAyE2bn/bo0T0sOW7qbByG49hNRVmZach71s9+2yz481hyvjEoji5q8qQvdj1gAiNG/RWMFjIJ",
	"iv": "PIPIgoaGVXBCaUPnmcUr4A=="
}

{
	errMsg: "login:ok",
	code: "091BP00000q0uL1Ky50008IsGk3BP00l"
}

  對數據進行解密:

Array
(
    [session_key] => YaDB4+kxgCOPjQEd0kmuYg==
    [openid] => o-UKg4vL2p_j-bg
    [unionid] => oduLh2pY1OMw
)
Array
(
    [nickName] =>  AAA
    [gender] => 1
    [language] => zh_CN
    [city] => Xuzhou
    [province] => Jiangsu
    [country] => China
    [avatarUrl] => https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLNi2Qbw/132
    [watermark] => Array
        (
            [timestamp] => 1617769042
            [appid] => wxb92
        )

)

  就這樣吧;前端需要進行更改接口調用;因為新接口每次都會有彈窗提示,所以這塊邏輯也要修改一下

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM