前言

上一篇文章大概寫了一下如何搭一個(gè)微信中控服務(wù): 【thinkjs搭建微信中控服務(wù)】 。
接下來(lái)這篇,專門寫一下如何在此基礎(chǔ)上擴(kuò)展出來(lái)一個(gè)比較好用的微信鑒權(quán)登陸的方案。
由于這一段的邏輯著實(shí)有點(diǎn)繞,所以就單獨(dú)拿出來(lái)寫了。
有時(shí)候,調(diào)用方甚至可以通過(guò)這個(gè)方案,進(jìn)行多公眾號(hào)openid的之間的關(guān)聯(lián)。
官方說(shuō)明
開(kāi)發(fā)文檔
微信文檔地址:傳送門
鑒權(quán)邏輯
拿到openid之后,理論上鑒權(quán)的邏輯就算完成了。
開(kāi)發(fā)者可以繼續(xù)用openid和access_token去獲取用戶信息;或者進(jìn)行一些其他的業(yè)務(wù)流程。
具體的參數(shù)說(shuō)明看微信的官方文檔就可以了。
中控邏輯
第一步:頁(yè)面跳轉(zhuǎn)至中控API
業(yè)務(wù)調(diào)用方會(huì)有自己的登陸邏輯,只需要獲取到當(dāng)前調(diào)用接口的用戶的openid,然后再進(jìn)行接下來(lái)的業(yè)務(wù)邏輯即可。
前端調(diào)用業(yè)務(wù)接口的時(shí)候,如果服務(wù)端發(fā)現(xiàn)當(dāng)前訪問(wèn)用戶沒(méi)有登陸狀態(tài),就會(huì)告訴前端需要鑒權(quán),并且把需要跳轉(zhuǎn)的中控API鏈接響應(yīng)給前端。
然后前端就開(kāi)始往中控的API鏈接跳轉(zhuǎn)。
第二步:中控重定向到微信API
相關(guān)代碼
// 接口 - 鑒權(quán)獲取code
async go_authAction() {
let that = this;
let {back, serve = ''} = that.get();
if (think.isEmpty(back)) {
return that.json({code: 1, msg: '參數(shù)不正確'})
}
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);
}
當(dāng)前題目:thinkjs微信中控之微信鑒權(quán)登陸的實(shí)現(xiàn)代碼-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://chinadenli.net/article30/cdcopo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、Google、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站導(dǎo)航、建站公司、ChatGPT
聲明:本網(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)
猜你還喜歡下面的內(nèi)容