微信授權登入-前後端分離
簡介
在前後端分離情況下實現微信服務號和訂閱號授權登入,專案使用springboot+Vue前後端分離的開發模式。
備註:目前只提供後端程式碼實現以及業務邏輯
流程圖
服務號
開發邏輯
進入活動頁面根據code
和state
引數判斷,如果引數為空則呼叫微信授權URL路徑介面,否則就呼叫獲取使用者授權資訊介面,通過code
和state
就能夠獲取到當前授權使用者的使用者資訊。
步驟
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