前言
上一篇文章大概寫了一下如何搭一個微信中控服務: 【thinkjs搭建微信中控服務】 。
接下來這篇,專門寫一下如何在此基礎上擴展出來一個比較好用的微信鑒權登陸的方案。
由于這一段的邏輯著實有點繞,所以就單獨拿出來寫了。
有時候,調用方甚至可以通過這個方案,進行多公眾號openid的之間的關聯。
官方說明
開發文檔
微信文檔地址:傳送門
鑒權邏輯
拿到openid之后,理論上鑒權的邏輯就算完成了。
開發者可以繼續用openid和access_token去獲取用戶信息;或者進行一些其他的業務流程。
具體的參數說明看微信的官方文檔就可以了。
中控邏輯
第一步:頁面跳轉至中控API
業務調用方會有自己的登陸邏輯,只需要獲取到當前調用接口的用戶的openid,然后再進行接下來的業務邏輯即可。
前端調用業務接口的時候,如果服務端發現當前訪問用戶沒有登陸狀態,就會告訴前端需要鑒權,并且把需要跳轉的中控API鏈接響應給前端。
然后前端就開始往中控的API鏈接跳轉。
第二步:中控重定向到微信API
相關代碼
// 接口 - 鑒權獲取code async go_authAction() { let that = this; let {back, serve = ''} = that.get(); if (think.isEmpty(back)) { return that.json({code: 1, msg: '參數不正確'}) } let newBack = encodeURIComponent(back); let redirectUri = `${baseHost}/api/open/wx/login_wechat?${encodeURIComponent(`back=${newBack}&wxid=${that.wxConfig.id}&serve=${serve}`)}`; let url = `https://open.weixin.qq.com/connect/oauth3/authorize?appid=${that.wxConfig.appid}&redirect_uri=${redirectUri}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect` that.redirect(url); }
當前題目:thinkjs微信中控之微信鑒權登陸的實現代碼-創新互聯
本文網址:http://m.kartarina.com/article30/cdcopo.html
成都網站建設公司_創新互聯,為您提供響應式網站、Google、網站設計公司、網站導航、建站公司、ChatGPT
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯