微信授權登陸步驟
夥伴們一起做了Javaweb小專案,微信登入授權模組是我負責,給大家普及後順便發到這裡,如果有不足的地方歡迎提出!
進入專案任意頁面
進入專案任意頁面,後臺首先會判斷該使用者是否登入。
若沒有登入(即session中沒有使用者資訊)並且以下兩種情況任意一個時
1. 首次進入該公眾號
2. 授權過期
就進入以下授權頁面。
第一步:使用者同意授權,獲取code
頁面顯示一個讓使用者點選的微信url,讓使用者點選
當點選確認授權後,自動跳入後臺寫好的url,獲取到code
code作為換取access_token的票據,每次使用者授權帶上的code將不一樣,code只能使用一次,5分鐘未被使用自動過期。
第二步:通過code獲取網頁授權access_token
然後後臺邏輯再次請求微信的url並拼接code引數,該請求所返回的json串裡含有access_token(介面呼叫憑證)以及openId(使用者與此公眾號的唯一標識)。
access_token有7天有效期。當access_token超時後,可以使用refresh_token進行重新整理,refresh_token有效期為30天,當refresh_token失效之後,需要使用者重新授權。
openId是使用者與此公眾號的唯一標識,永遠唯一且不過期
第三步:通過access_token和openId獲取使用者資訊
後臺邏輯再次訪問微信url並拼接兩個引數,成功會返回下面的包含使用者資訊的json串,將使用者資訊存入資料庫方便以後使用
第四步進入主頁
完成以上授權,獲取到使用者資訊後,標記該請求為已登入狀態(即將使用者資訊放入session),後臺邏輯跳入主頁
授權登陸就此完成。
有興趣繼續看
這次授權了後,以後再次進入該專案,就從cookie中獲取openId,就不用經過步驟一了(清空了cookie?那就再次授權咯),然後根據openid直接從資料庫查到使用者資訊並標記該請求為已登入狀態就可以了
附錄:微信官方文件原文:
上面寫的簡略。如果你很愛學習很渴望力量,具體實現點連結:
如果有不足的地方歡迎提出!