相信開發(fā)過企業(yè)微信應(yīng)用的同行們,剛開始都會疑惑企業(yè)微信的身份驗證模塊下的兩個模式:
- 網(wǎng)頁授權(quán)登錄
- 掃碼授權(quán)登錄
分別講一下各自的流程
網(wǎng)頁授權(quán)登錄
用戶點擊在企業(yè)微信終端(包括PC端和移動端)應(yīng)用里的的URL(該URL形如:https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&agentid=AGENTID&state=STATE#wechat_redirect),該鏈接會被企業(yè)微信官方后臺解析并校驗,如果通過了,終端會跳轉(zhuǎn)到上面URL里的REDIRECT_URI并帶上一個code,企業(yè)微信應(yīng)用可以根據(jù)這個code換取用戶的userid和user_ticket(前端或后端都可以實現(xiàn),只要能發(fā)起https請求就可以),根據(jù)userid或user_ticket獲取用戶的信息,兩者的區(qū)別是獲取的用戶信息層次不同(基本信息、敏感信息)。
掃碼授權(quán)登錄
用戶在任何平臺的瀏覽器上掃二維碼,并在手機上確認(rèn)授權(quán),經(jīng)過企業(yè)微信官方后臺解析并校驗,如果通過了,終端會跳轉(zhuǎn)到一個URL并帶上一個code,接下來就跟網(wǎng)頁授權(quán)登錄差不多了。
二維碼有兩種方式設(shè)置,一種是跳轉(zhuǎn)到另一個網(wǎng)頁,這個網(wǎng)頁上有二維碼;另一種是二維碼是附在你的網(wǎng)頁上的,不需要跳轉(zhuǎn)到另一個網(wǎng)頁。
兩種模式度可以抽象為如下幾個步驟:
- 請求code,兩者是不一樣的,一個是通過點擊終端URL,一個是通過在掃瀏覽器上的二維碼
- 獲取用戶信息,兩者是一樣的,都是根據(jù)code通過https請求去獲取用戶的信息
這兩種模式的一些其他區(qū)別如下:
| 網(wǎng)頁授權(quán) | 掃碼授權(quán) | |
|---|---|---|
| 場景 | 指企業(yè)微信終端(包括PC端和移動端) | 任何平臺的瀏覽器上都可以 |
| 前置操作 | 不需要 | 需要“設(shè)置授權(quán)回調(diào)域” |
| 對第三方服務(wù)商的支持 | 支持 | 不支持 |