摘要:是什么是表示用戶在你的當(dāng)前應(yīng)用中的唯一標(biāo)識比如小程序,微信公眾號等,這些都算是一個應(yīng)用,如果你有多個應(yīng)用,同一個用戶的可能并不相同下圖是獲取的過程微信的官方文檔和時序圖小程序登錄的時序圖思路首先調(diào)用獲取登錄憑證調(diào)用接口前,需要把微信小程序的
OpenId是什么?
openid 是表示用戶在你的當(dāng)前應(yīng)用中的唯一標(biāo)識,比如小程序,微信公眾號等,這些都算是一個應(yīng)用,如果你有多個應(yīng)用,同一個用戶的openId可能并不相同
**下圖是獲取OpenId的過程微信的官方文檔和時序圖**
**小程序登錄的時序圖**思路:
首先調(diào)用wx.login({})獲取登錄憑證(code)
調(diào)用接口前,需要把微信小程序的appid 和 secret 告知后端
用拿到的code 換取 openid
實例:App({ onLaunch: function() { var self = this; // 展示本地存儲能力 var logs = wx.getStorageSync("logs") || [] logs.unshift(Date.now()) wx.setStorageSync("logs", logs) /** 重點來了**************** | | | | *********/ // 登錄 wx.login({ success: res => { // 發(fā)送 res.code 到后臺換取 openId, sessionKey, unionId var Params = { code: res.code, //臨時登錄憑證 key: self.globalData.MD5Key }; //生成加密key Params.key = self.MD5(Params.code + "&" + self.getNowTime() + "&" + Params.key); wx.request({ url: "https://testurl/api/test/GetOpenId", //此處填寫第三方的接口地址 data: "=" + JSON.stringify(Params), header: { "content-type": "application/json" }, method: "POST", // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT success: function(res) { var openid = res.data.RntData.openid //返回openid self.globalData.openid = openid; console.log(openid); } }) } }) /** 重點結(jié)束 | | | | ********************************/ // 獲取用戶信息 wx.getSetting({ success: res => { if (res.authSetting["scope.userInfo"]) { // 已經(jīng)授權(quán),可以直接調(diào)用 getUserInfo 獲取頭像昵稱,不會彈框 wx.getUserInfo({ success: res => { // 可以將 res 發(fā)送給后臺解碼出 unionId this.globalData.userInfo = res.userInfo // 由于 getUserInfo 是網(wǎng)絡(luò)請求,可能會在 Page.onLoad 之后才返回 // 所以此處加入 callback 以防止這種情況 if (this.userInfoReadyCallback) { this.userInfoReadyCallback(res) } } }) } } }) } })
是不是很好奇,為什么會多了一步,用第三方服務(wù)器去訪問微信接口的過程呢?
如果appid和secret存在本地或者前端直接去獲取,很容易被抓包從而導(dǎo)致用戶信息泄露,因此,用第三方服務(wù)器去請求微信接口,能確保openID的安全性
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/102231.html
摘要:做一款小程序,如果需要判斷用戶,當(dāng)然要獲取一些基本信息,例如頭像,昵稱,。所以本次案例就直接上代碼了。 做一款小程序,如果需要判斷用戶,當(dāng)然要獲取一些基本信息,例如頭像,昵稱,openid。所以本次案例就直接上代碼了。 小程序前端 index.wxml 獲取頭像昵稱 {{userInfo.nickName}} ...
摘要:微信小程序開放了微信登錄的,無論是個人還是企業(yè)申請的小程序均可使用。開始寫服務(wù)端,也很容易。 微信小程序開放了微信登錄的api,無論是個人還是企業(yè)申請的小程序均可使用。 首先創(chuàng)建一個項目,把這些代碼都清空,我們自己寫! showImg(https://segmentfault.com/img/bVbco8j?w=1022&h=860); 然后,開始寫了!首先index.wxml,寫一個...
摘要:前端,填寫填寫填寫模板模板的第個關(guān)鍵詞模板的第個關(guān)鍵詞模板的第個關(guān)鍵詞模板的第個關(guān)鍵詞模板的第個關(guān)鍵詞推送域名接口地址,我學(xué)習(xí)就用,建議用后端,參數(shù)此處開始處理數(shù)據(jù)發(fā)送一個常規(guī)的請求捕抓異常至于和怎么獲取,自己另外學(xué)習(xí)咯推送 前端,index.wxml 推送 index.js // pages/mubanxiaoxi/mubanx...
摘要:前端,填寫填寫填寫模板模板的第個關(guān)鍵詞模板的第個關(guān)鍵詞模板的第個關(guān)鍵詞模板的第個關(guān)鍵詞模板的第個關(guān)鍵詞推送域名接口地址,我學(xué)習(xí)就用,建議用后端,參數(shù)此處開始處理數(shù)據(jù)發(fā)送一個常規(guī)的請求捕抓異常至于和怎么獲取,自己另外學(xué)習(xí)咯推送 前端,index.wxml 推送 index.js // pages/mubanxiaoxi/mubanx...
摘要:附微信支付流程微信支付流程和小程序的支付流程基本一致,需要注意兩點需要在微信商戶平臺配置支付目錄,只有跳轉(zhuǎn)到了支付目錄的地址,才能發(fā)起微信支付。 我所在公司需要開發(fā)一款商城小程序,里面需要用到微信支付,我負責(zé)里面的下單功能,從小程序端到后臺的支付流程都是我自己開發(fā)的,由于我們組沒有人有開發(fā)微信支付的經(jīng)驗,很多東西都還不怎么明白,但是沒辦法,只能我自己琢磨,寫完之后總感覺有bug,但是不...
閱讀 3383·2021-11-23 09:51
閱讀 2531·2021-11-09 09:46
閱讀 1543·2019-08-30 15:54
閱讀 3219·2019-08-30 14:22
閱讀 2968·2019-08-29 12:40
閱讀 1684·2019-08-26 10:33
閱讀 1863·2019-08-23 17:09
閱讀 1620·2019-08-23 16:11