国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 熱點 > 微信 > 正文

thinkjs微信中控之微信鑒權登陸的實現代碼

2024-07-22 01:17:47
字體:
來源:轉載
供稿:網友

前言

上一篇文章大概寫了一下如何搭一個微信中控服務: 【thinkjs搭建微信中控服務】 。

接下來這篇,專門寫一下如何在此基礎上擴展出來一個比較好用的微信鑒權登陸的方案。

由于這一段的邏輯著實有點繞,所以就單獨拿出來寫了。

有時候,調用方甚至可以通過這個方案,進行多公眾號openid的之間的關聯。

官方說明

開發文檔

微信文檔地址:傳送門

鑒權邏輯

前端跳轉到以下url,重定向或者代碼跳轉都可以:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
彈出是否同意授權的框,用戶同意授權(如果是靜默授權,就不會彈出同意框),然后頁面會重定向到上面鏈接的redirect_uri地址(一般是開發者處理下一步鑒權邏輯的服務端API),并且會帶上code參數。
服務端拿到code之后,調用以下api來獲取網頁授權的access_token和用戶的openid:https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

拿到openid之后,理論上鑒權的邏輯就算完成了。

開發者可以繼續用openid和access_token去獲取用戶信息;或者進行一些其他的業務流程。

具體的參數說明看微信的官方文檔就可以了。

中控邏輯

第一步:頁面跳轉至中控API

業務調用方會有自己的登陸邏輯,只需要獲取到當前調用接口的用戶的openid,然后再進行接下來的業務邏輯即可。

前端調用業務接口的時候,如果服務端發現當前訪問用戶沒有登陸狀態,就會告訴前端需要鑒權,并且把需要跳轉的中控API鏈接響應給前端。

然后前端就開始往中控的API鏈接跳轉。

第二步:中控重定向到微信API

相關代碼

// 接口 - 鑒權獲取codeasync 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/oauth2/authorize?appid=${that.wxConfig.appid}&redirect_uri=${redirectUri}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect`  that.redirect(url);}

作用:

鑒權獲取code

地址:

baseHost + /open/wx/go_auth

參數:

參數名 必選 說明
wxid 對應配置公眾號的id,告訴中控用哪個公眾號鑒權
back 跳轉到鑒權鏈接之前的頁面完整url,便于鑒權完畢后重定向回之前頁面
serve 調用方api回調地址,在鑒權邏輯完成后,會攜帶openid重定向回這個地址
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 井冈山市| 丽水市| 桐柏县| 慈溪市| 泰顺县| 喜德县| 龙泉市| 呼图壁县| 宽城| 南江县| 金平| 婺源县| 都安| 娱乐| 城步| 巴彦淖尔市| 安阳市| 乐昌市| 通许县| 肥西县| 刚察县| 尖扎县| 清丰县| 通化县| 昌吉市| 上饶县| 静乐县| 韶山市| 道真| 灵丘县| 淮北市| 富顺县| 宜川县| 南投县| 黄龙县| 扎兰屯市| 珲春市| 英超| 五常市| 古田县| 册亨县|