thinkjs微信中控之微信鑒權登陸的實現(xiàn)代碼-創(chuàng)新互聯(lián)

前言

創(chuàng)新互聯(lián)建站于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站建設、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元麟游做網(wǎng)站,已為上家服務,為麟游各地企業(yè)和個人服務,聯(lián)系電話:18980820575

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

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

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

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

官方說明


開發(fā)文檔


微信文檔地址:傳送門

鑒權邏輯


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

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

開發(fā)者可以繼續(xù)用openid和access_token去獲取用戶信息;或者進行一些其他的業(yè)務流程。

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

中控邏輯


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


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

前端調用業(yè)務接口的時候,如果服務端發(fā)現(xiàn)當前訪問用戶沒有登陸狀態(tài),就會告訴前端需要鑒權,并且把需要跳轉的中控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: '參數(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);
}

當前題目:thinkjs微信中控之微信鑒權登陸的實現(xiàn)代碼-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://muchs.cn/article30/cdcopo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站、Google、網(wǎng)站設計公司、網(wǎng)站導航、建站公司、ChatGPT

廣告

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

營銷型網(wǎng)站建設