微信網(wǎng)頁(yè)授權(quán)、關(guān)注、獲取用戶信息流程

微信用戶關(guān)注公眾號(hào)流程:

搜索公眾號(hào)---->點(diǎn)擊公眾號(hào)顯示關(guān)注頁(yè)面---->點(diǎn)擊關(guān)注---->進(jìn)入公眾號(hào)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? / \

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? / ? \

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?不瀏覽不需要授權(quán) ? ? ? ? 點(diǎn)擊任何菜單鏈接 ,都需要授權(quán)

具體而言,網(wǎng)頁(yè)授權(quán)流程分為四步:

1、引導(dǎo)用戶進(jìn)入授權(quán)頁(yè)面同意授權(quán),獲取code

? ? ? ? ? 如果用戶同意授權(quán),頁(yè)面將跳轉(zhuǎn)至 redirect_uri/?code=CODE&state=STATE。

? ? ? ? ?code說(shuō)明 : code作為換取access_token的票據(jù),每次用戶授權(quán)帶上的code將不一樣,code只 能使用一次,5分鐘未被使用自動(dòng)過(guò)期。

2、通過(guò)code換取網(wǎng)頁(yè)授權(quán)access_token(與基礎(chǔ)支持中的access_token不同)

? ? ? ? ?如果網(wǎng)頁(yè)授權(quán)的作用域?yàn)閟nsapi_base,則本步驟中獲取到網(wǎng)頁(yè)授權(quán)access_token的同時(shí),也獲取到了openid,snsapi_base式的網(wǎng)頁(yè)授權(quán)流程即到此為止。

3、如果需要,開(kāi)發(fā)者可以刷新網(wǎng)頁(yè)授權(quán)access_token,避免過(guò)期

4、通過(guò)網(wǎng)頁(yè)授權(quán)access_token和openid獲取用戶基本信息(支持UnionID機(jī)制)

? ? ? ? ? 如果網(wǎng)頁(yè)授權(quán)作用域?yàn)閟nsapi_userinfo,則此時(shí)開(kāi)發(fā)者可以通過(guò)access_token和openid拉取用戶信息了。

5、兩種scope的區(qū)別:

應(yīng)用授權(quán)作用域不同:

靜默授權(quán):snsapi_base (不彈出授權(quán)頁(yè)面,直接跳轉(zhuǎn),只能獲取用戶openid)

手動(dòng)授權(quán):snsapi_userinfo (彈出授權(quán)頁(yè)面,可通過(guò)openid拿到昵稱性別、所在地。并且,即使在未關(guān)注的情況下,只要用戶授權(quán),也能獲取其信息)

必須驗(yàn)證是用戶手動(dòng)同意授權(quán),才允許開(kāi)發(fā)者通過(guò)openid拿到具體的用戶信息,靜默授權(quán)沒(méi)有用戶手動(dòng)同意授權(quán)這一動(dòng)作,所以只能拿到openid,不能通過(guò)openid進(jìn)一步取用戶詳細(xì)信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容