微信公眾號(hào)開(kāi)發(fā)中網(wǎng)頁(yè)授權(quán)怎么實(shí)現(xiàn)簡(jiǎn)化用戶綁定-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)微信公眾號(hào)開(kāi)發(fā)中網(wǎng)頁(yè)授權(quán)怎么實(shí)現(xiàn)簡(jiǎn)化用戶綁定,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)主營(yíng)魏都網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開(kāi)發(fā),魏都h5成都小程序開(kāi)發(fā)搭建,魏都網(wǎng)站營(yíng)銷推廣歡迎魏都等地區(qū)企業(yè)咨詢

首先我們要明確綁定微信用戶和系統(tǒng)用戶,其目的是為了用戶在一次綁定以后,再次通過(guò)微信訪問(wèn)系統(tǒng)時(shí)可以由系統(tǒng)自動(dòng)為其登錄,避免用戶反復(fù)登錄操作,使用戶操作體驗(yàn)更流暢。

微信綁定用戶的核心邏輯其實(shí)就是把微信用戶的 OpenID 和本系統(tǒng)的用戶 UserId 建立關(guān)聯(lián)關(guān)系。目前可以獲得微信用戶的 OpenID 的方法有 2 種:

1 從用戶交互的 xml 中獲?。?/p>

<FromUserName><![CDATA[fromUser]]></FromUserName>

獲取不需要授權(quán)頁(yè)面,但是需要用戶主動(dòng)和公眾號(hào)互動(dòng),常見(jiàn)的方式是使用公眾號(hào)菜單,設(shè)置為回復(fù)消息,在用戶點(diǎn)擊菜單事件推送到服務(wù)器接口的 XML 中獲取 OpenId ,然后組織一個(gè)與 OpenId 相關(guān)的鏈接放到回復(fù)內(nèi)容里,用戶點(diǎn)擊此鏈接再跳轉(zhuǎn)到綁定頁(yè)面。

2 使用網(wǎng)頁(yè)授權(quán)獲取用戶基本信息

這是利用微信提供的 OAuth3.0 接口,不需要用戶額外點(diǎn)擊菜單項(xiàng)和回復(fù)消息中的,可以直接從微信公眾號(hào)里的移動(dòng)站點(diǎn)任何頁(yè)面發(fā)起。尤其是綁定用戶時(shí)只需要知道 OpenId,不需要完善的用戶信息,還可以使用微信提供的靜默授權(quán)模式,這時(shí)連用戶授權(quán)的頁(yè)面都不用出現(xiàn),獲取 OpenId 的過(guò)程對(duì)用戶幾乎是透明的,這種流程更流暢。

本文重點(diǎn)介紹第 2 種方式。對(duì)應(yīng)的微信官方文檔在 網(wǎng)頁(yè)授權(quán)獲取用戶基本信息

先看一下整體流程圖。

用戶已登錄的判斷是通過(guò)本系統(tǒng)自行判斷的。檢測(cè)出用戶未登錄時(shí),程序跳轉(zhuǎn)到微信 OAuth 授權(quán)頁(yè),比如

https://open.weixin.qq.com/connect/oauth3/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect

注意我們使用的靜默授權(quán)方式,scope 參數(shù)要取值 snsapi_base。redirect_uri 參數(shù)值是要跳回我系統(tǒng)的 URL 地址,這里要進(jìn)行 URL 編碼。

跳轉(zhuǎn)到微信授權(quán)頁(yè)時(shí),不需要用戶點(diǎn)擊授權(quán),所以不會(huì)停,直接跳回到本系統(tǒng)的 URI,并且在其后再加上 code 參數(shù),如上例中的 

https://chong.qq.com/php/index.php?d=&c=wxAdapter&m=mobileDeal&showwxpaytitle=1&vb2ctag=4_2030_5_1194_60&code=xxxx

而這個(gè)跳回的頁(yè)面,就是獲取 OpenId 的程序所在。這頁(yè)程序里使用跳回時(shí)得到的 code 參數(shù)值,再去調(diào)用微信服務(wù)器 access_token 接口即可得到 OpenId,即這個(gè)接口在返回 access_token 的同時(shí)也會(huì)返回 OpenId:

/tupian/20230522/access_token URL 前邊是 /tupian/20230522/oauth3,和其它微信接口 https://api.weixin.qq.com/cgi-bin/ 是不同的!

到此我們已經(jīng)得到了微信用戶的 OpenId,此時(shí)再輸出一個(gè)登錄表單給用戶,讓用戶填寫用戶名/密碼,或者使用現(xiàn)在更流利的用戶登錄方式,填寫手機(jī)號(hào)獲取短信驗(yàn)證碼,POST 提交后,即可查到用戶在本系統(tǒng)的 UserId,我們?cè)诜?wù)器端記錄關(guān)聯(lián)關(guān)系,整個(gè)綁定過(guò)程就完成了。

OpenId 作為微信用戶標(biāo)識(shí)字符串,出于完全考慮,原則上不能以明文方式出現(xiàn)在表單里以及在表單中提交上來(lái)。OpenId 防偽造防重復(fù)等等,網(wǎng)上已有不少研討。我在實(shí)際開(kāi)發(fā)中,發(fā)現(xiàn)比較簡(jiǎn)明的方式是直接使用有效期 5 分鐘的 session 存儲(chǔ) OpenId,此 session 使用時(shí)立即失效,然后把 session 的 key 作為參數(shù)輸出給用戶端。

看完上述內(nèi)容,你們對(duì)微信公眾號(hào)開(kāi)發(fā)中網(wǎng)頁(yè)授權(quán)怎么實(shí)現(xiàn)簡(jiǎn)化用戶綁定有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝大家的支持。

文章題目:微信公眾號(hào)開(kāi)發(fā)中網(wǎng)頁(yè)授權(quán)怎么實(shí)現(xiàn)簡(jiǎn)化用戶綁定-創(chuàng)新互聯(lián)
鏈接地址:http://muchs.cn/article12/phpgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)域名注冊(cè)、網(wǎng)站內(nèi)鏈靜態(tài)網(wǎng)站、軟件開(kāi)發(fā)微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)