天天看點

微信掃碼登陸流程

以下為幾類型微信登入的功能說明(基于OAuth2.0協定标準建構的微信OAuth2.0授權登入系統):

序号 類型 授權域/接口 使用者側使用流程 接入流程
1 App 接入微信SDK,并調用snsapi_userinfo (1)在App内選擇使用微信登入 (2)拉起微信用戶端,打開使用者授權頁,完成登入授權 (1)注冊微信開放平台(open.weixin.qq.com)帳号,并完成開發者資質認證 (2)申請【App移動應用】并稽核通過後可以使用,檢視開發文檔
3 微信用戶端内H5 使用公衆号的登入能力: snsapi_base snsapi_userinfo snsapi_base:靜默授權 snsapi_userinfo: (1)使用者在H5内點選登入,喚起授權彈窗 (2)使用者側完成登入授權 (1)注冊微信公衆号,選擇“服務号”類型,并完成微信認證(2)在公衆号管理背景設定回調域名(3)接入微信登入能力,檢視開發文檔
4 小程式 wx.login wx.getUserInfo wx.login:靜默授權,開發者可擷取openid wx.getUserInfo: (1)使用者在小程式内點選元件,喚起登入視窗(2)使用者側完成登入授權 (1)注冊小程式 (2)接入微信登入功能,檢視開發文檔,檢視登入流程設計指引

說明:

  • 序号1——“App”針對的是:在手機中打開移動應用時,使用微信授權登入。
  • 序号2——“網站應用”針對的是:使用浏覽器通路的Web網站時,使用微信授權登入。
  • 序号3——“微信用戶端内H5”針對的是:在微信用戶端中通路第三方網頁時,使用微信授權登入。
  • 序号4——“小程式”針對的是:打開微信小程式時,使用微信授權登入。

博瑞霖目前需要使用的功能為:“網站應用”和“小程式”。

一、小程式使用微信授權登入

該部分業務邏輯基本已完成。

二、網站應用使用微信授權登入

該部分功能未完成,目前有兩個方案:

1、基于“網站應用”的OAuth掃碼登入

參考連結:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

可參考的網站:https://www.zhihu.com(微信授權後,知乎會要求使用者綁定手機号)

前置工作:在微信開放平台注冊建立網站應用,稽核通過夠後,設定用于OAuth回調驗證的後端URL(API接口)。

前端工作:

網站内嵌二維碼微信登入 JS 實作。

後端工作:

完成OAuth2認證流程。

優點:

  • 不需要自己制作二維碼,調用微信開發平台API,可以直接生成登入用二維碼。
  • 前端和後端的開發有标準的開發文檔。

缺點:

  • 需要注冊網站應用,微信審批通過後,配置授權回調URL。
  • 根據官方文檔描述網站應用微信授權域為“snsapi_login”,該授權域僅能擷取使用者的OpenID,目前小程式登入僅擷取了使用者的OpenID。針對同一使用者的多個角色(醫生和銷售),會有兩個OpenID(對應兩個小程式),無法預判OAuth驗證接口調用時是否會發生代碼層面的邏輯問題。
  • 可考慮修改小程式邏輯,取使用者的UnionID。但需要實際測試,能否擷取使用者授權的作用域“snsapi_userinfo”(該授權域,可以擷取比較詳細的使用者資訊)。
  • “snsapi_login”無法擷取使用者的手機号,如果使用者不存在,無法登入。(這個其實不算是缺點,我們本身的邏輯就不支援這種方式的登入)
  • 二維碼圖案樣式固定,無法更改。
2、 使用小程式認證

可參考網站:https://www.csdn.net(采用CSDN小程式驗證,若小程式登入未過期,驗證時直接跳過授權。也可能是首次授權後,後面就需要授權了。)

優點:

  • 可自己制作二維碼。
  • 驗證邏輯可控。
  • 小程式驗證可擷取相對完整的使用者資訊。

缺點:

  • 前端和後端開發工作量相對會多一下,同時開發工作開始前要規劃好授權驗證邏輯(要由足夠的安全性)。

繼續閱讀