91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信公眾號開發中網頁授權怎么實現簡化用戶綁定

發布時間:2021-12-18 16:53:54 來源:億速云 閱讀:135 作者:柒染 欄目:互聯網科技

今天就跟大家聊聊有關微信公眾號開發中網頁授權怎么實現簡化用戶綁定,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

首先我們要明確綁定微信用戶和系統用戶,其目的是為了用戶在一次綁定以后,再次通過微信訪問系統時可以由系統自動為其登錄,避免用戶反復登錄操作,使用戶操作體驗更流暢。

微信綁定用戶的核心邏輯其實就是把微信用戶的 OpenID 和本系統的用戶 UserId 建立關聯關系。目前可以獲得微信用戶的 OpenID 的方法有 2 種:

1 從用戶交互的 xml 中獲取:

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

獲取不需要授權頁面,但是需要用戶主動和公眾號互動,常見的方式是使用公眾號菜單,設置為回復消息,在用戶點擊菜單事件推送到服務器接口的 XML 中獲取 OpenId ,然后組織一個與 OpenId 相關的鏈接放到回復內容里,用戶點擊此鏈接再跳轉到綁定頁面。

2 使用網頁授權獲取用戶基本信息

這是利用微信提供的 OAuth3.0 接口,不需要用戶額外點擊菜單項和回復消息中的,可以直接從微信公眾號里的移動站點任何頁面發起。尤其是綁定用戶時只需要知道 OpenId,不需要完善的用戶信息,還可以使用微信提供的靜默授權模式,這時連用戶授權的頁面都不用出現,獲取 OpenId 的過程對用戶幾乎是透明的,這種流程更流暢。

本文重點介紹第 2 種方式。對應的微信官方文檔在 網頁授權獲取用戶基本信息

先看一下整體流程圖。

用戶已登錄的判斷是通過本系統自行判斷的。檢測出用戶未登錄時,程序跳轉到微信 OAuth 授權頁,比如

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

注意我們使用的靜默授權方式,scope 參數要取值 snsapi_base。redirect_uri 參數值是要跳回我系統的 URL 地址,這里要進行 URL 編碼。

跳轉到微信授權頁時,不需要用戶點擊授權,所以不會停,直接跳回到本系統的 URI,并且在其后再加上 code 參數,如上例中的 

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

而這個跳回的頁面,就是獲取 OpenId 的程序所在。這頁程序里使用跳回時得到的 code 參數值,再去調用微信服務器 access_token 接口即可得到 OpenId,即這個接口在返回 access_token 的同時也會返回 OpenId:

https://api.weixin.qq.com/sns/oauth3/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

注意這個接口的 URL 前邊是 https://api.weixin.qq.com/sns/oauth3,和其它微信接口 https://api.weixin.qq.com/cgi-bin/ 是不同的!

到此我們已經得到了微信用戶的 OpenId,此時再輸出一個登錄表單給用戶,讓用戶填寫用戶名/密碼,或者使用現在更流利的用戶登錄方式,填寫手機號獲取短信驗證碼,POST 提交后,即可查到用戶在本系統的 UserId,我們在服務器端記錄關聯關系,整個綁定過程就完成了。

OpenId 作為微信用戶標識字符串,出于完全考慮,原則上不能以明文方式出現在表單里以及在表單中提交上來。OpenId 防偽造防重復等等,網上已有不少研討。我在實際開發中,發現比較簡明的方式是直接使用有效期 5 分鐘的 session 存儲 OpenId,此 session 使用時立即失效,然后把 session 的 key 作為參數輸出給用戶端。

看完上述內容,你們對微信公眾號開發中網頁授權怎么實現簡化用戶綁定有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴中市| 从江县| 馆陶县| 杂多县| 抚宁县| 高雄市| 那曲县| 伽师县| 甘谷县| 城固县| 宁海县| 桦甸市| 万山特区| 宝丰县| 额尔古纳市| 庄浪县| 靖江市| 三台县| 图木舒克市| 惠东县| 津南区| 南通市| 长垣县| 长岛县| 武汉市| 东阿县| 山东省| 孟州市| 咸宁市| 霍山县| 辽宁省| 文安县| 新源县| 密云县| 清水县| 平阳县| 正定县| 马鞍山市| 东乌| 合肥市| 慈利县|