微信用戶關注公眾號流程:
搜索公眾號---->點擊公眾號顯示關注頁面---->點擊關注---->進入公眾號
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? / \
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? / ? \
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?不瀏覽不需要授權 ? ? ? ? 點擊任何菜單鏈接 ,都需要授權
具體而言,網(wǎng)頁授權流程分為四步:
1、引導用戶進入授權頁面同意授權,獲取code
? ? ? ? ? 如果用戶同意授權,頁面將跳轉至 redirect_uri/?code=CODE&state=STATE。
? ? ? ? ?code說明 : code作為換取access_token的票據(jù),每次用戶授權帶上的code將不一樣,code只 能使用一次,5分鐘未被使用自動過期。
2、通過code換取網(wǎng)頁授權access_token(與基礎支持中的access_token不同)
? ? ? ? ?如果網(wǎng)頁授權的作用域為snsapi_base,則本步驟中獲取到網(wǎng)頁授權access_token的同時,也獲取到了openid,snsapi_base式的網(wǎng)頁授權流程即到此為止。
3、如果需要,開發(fā)者可以刷新網(wǎng)頁授權access_token,避免過期
4、通過網(wǎng)頁授權access_token和openid獲取用戶基本信息(支持UnionID機制)
? ? ? ? ? 如果網(wǎng)頁授權作用域為snsapi_userinfo,則此時開發(fā)者可以通過access_token和openid拉取用戶信息了。
5、兩種scope的區(qū)別:
應用授權作用域不同:
靜默授權:snsapi_base (不彈出授權頁面,直接跳轉,只能獲取用戶openid)
手動授權:snsapi_userinfo (彈出授權頁面,可通過openid拿到昵稱性別、所在地。并且,即使在未關注的情況下,只要用戶授權,也能獲取其信息)
必須驗證是用戶手動同意授權,才允許開發(fā)者通過openid拿到具體的用戶信息,靜默授權沒有用戶手動同意授權這一動作,所以只能拿到openid,不能通過openid進一步取用戶詳細信息。