以snsapi_base爲scope發起的網頁受權用來獲取用戶的openid。不會跳轉一個受權的頁面,直接跳轉回調頁(也就是你一開始進入的頁面),因此用戶是無感知的,默認受權。前端
以snsapi_userinfo爲scope發起的網頁受權,用來獲取用戶的信息。須要用戶手動肯定,也就是常見的一個頁面詢問是否贊成該公衆號獲取您暱稱...數據庫
1.用戶贊成受權後得到code
請求https://open.weixin.qq.com/co...
參數說明後端
2.根據code換取access_token和openid (注意access_token有時效,過時後要自動刷新)
請求https://api.weixin.qq.com/sns...
提交appid和code(注意code5分鐘後自動過時且只能使用1次)
第2步請求成功後返回openid和access_token,也就是到這一步爲止完成了基礎受權api
3.根據網頁受權的access_token和openid能夠獲取用戶信息
根據基礎受權返回的openid和access_token做爲參數請求 https://api.weixin.qq.com/sns...app
請求成功後返回用戶信息,這一步也就是高級受權優化
當用戶進入網頁會有兩種受權,一種是請求openid,用戶是默認受權,不知情的。第一步獲取了用戶的openid和access_token,openid是惟一的,可是access_token兩小時後過時,因此要自動刷新。
高級受權獲取用戶信息受權是須要用戶手動確認的。即根據用戶的openid和access_token來獲取。有一個優化方法是獲取用戶信息後保存到數據庫,當用戶基礎受權後根據它的openid來查找用戶信息,若是沒有再申請高級受權。
由於受權時須要的appid等是隱私數據,因此我司的處理方式是將兩個受權方式都處理成後端接口讓前端請求,這樣就能夠避免將隱私數據暴露。可是做爲一名前端開發,瞭解這個受權流程仍是十分有必要的。spa