1. 程式人生 > >微信授權登入-前後端分離

微信授權登入-前後端分離

簡介

在前後端分離情況下實現微信服務號和訂閱號授權登入,專案使用springboot+Vue前後端分離的開發模式。

備註:目前只提供後端程式碼實現以及業務邏輯

流程圖

服務號

開發邏輯

進入活動頁面根據codestate引數判斷,如果引數為空則呼叫微信授權URL路徑介面,否則就呼叫獲取使用者授權資訊介面,通過codestate就能夠獲取到當前授權使用者的使用者資訊。

步驟

1、首次進入頁面,獲取微信重定向URL

首次進入頁面,如果地址中沒有code和state,那麼就表示當前活動沒有授權使用者資訊,所以此時需要獲取後臺拼接好的微信重定向URL介面,然後通過URL跳轉授權。

介面返回如下字串:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri= redirectURL&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

  • APPID : 服務號APPID
  • redireURL : 重定向頁面地址

2、通過微信介面重定向到活動頁面

通過使用者確認授權,微信再重定向到活動頁面,並且返回code和state引數,通過這兩個引數再次調後臺介面,獲取使用者授權資訊。

http://m.ershouhui.com/yf/201710/finger/activity/?code=021ieRZt1CVY3a0GqNZt175QZt1ieRZE&state=STATE

根據返回的code和state,處理之後呼叫獲取授權資訊方法

3、通過code和state獲取使用者資訊

根據code和state引數,獲取使用者授權資訊。

訂閱號

由於訂閱號無法從網頁直接授權登入,所以需要藉助於服務號APPID來關聯實現使用者授權等操作。

想獲取當前使用者是否關注訂閱號,需要通過https://api.weixin.qq.com/cgi-bin/user/info?access_token=%s&openid=%s&lang=zh_CN

來獲取使用者資訊,返回的引數中有一個欄位叫subscribe,為1表示已經關注,為0表示未關注。

參考資料

參與者