探討微信OAuth2.0登錄流程
背景
我們引出一個場景,比如你剛關(guān)注一個公眾號第一次授權(quán)后汤徽,下次直接打開公眾號(不需要輸入用戶名/密碼)就能夠訪問你個人的私有信息转捕。在這里公眾號對應(yīng)的公司服務(wù)器好像把你微信號綁定成他們注冊用戶茸苇。
上述場景描述的就是OAuth2.0協(xié)議,即允許第三方應(yīng)用訪問用戶私有信息肛真,而不需要將用戶名和密碼提供給第三方應(yīng)用(比如微信)。
分析用戶登錄交互邏輯
我們以前想要訪問一個網(wǎng)站的信息必須先注冊爽航,下次登錄也必須修輸入用戶名/和密碼(因為只有用戶名/密碼才能夠讓網(wǎng)站認(rèn)出你是那個用戶)蚓让。
而現(xiàn)在你通過點擊微信公眾號不輸入用戶名和密碼就可以登錄乾忱,那么用戶唯一的身份標(biāo)識就是微信號,每個用戶關(guān)注一個公眾號都會生成該公眾號對應(yīng)的openId凭疮。
而企業(yè)的標(biāo)識就是微信公眾號饭耳,appid對于每個企業(yè)都是唯一的。
如果想要微信用戶登錄企業(yè)網(wǎng)站A执解,那么就需要建立起openId與appId關(guān)系寞肖。當(dāng)用戶點擊授權(quán)頁面(授權(quán)頁面是網(wǎng)站提供,會往網(wǎng)站服務(wù)器A發(fā)請求)衰腌,網(wǎng)站服務(wù)器A會綁定這兩種的關(guān)系新蟆。
以后用戶直接就可以通過點擊微信公眾號通過傳過來的openId登錄了(點擊微信公眾號必須先登錄微信,這一步保證了是本人或合法的用戶在操作)右蕊。
登錄之后會返回access_token ,此標(biāo)識相當(dāng)于一個登錄態(tài)(類似于cookie)
其具體交互如下圖所示:
網(wǎng)站A的開發(fā)人員應(yīng)該做什么
由上面用戶登錄流程我們知道企業(yè)標(biāo)識是appId用戶標(biāo)識是openId琼稻。且授權(quán)之后還需要自動回調(diào)獲取access token ,所以我們需要提前配置回調(diào)地址饶囚。
其具體需要開發(fā)的步驟參考如下文章:[http://www.cnblogs.com/sunshq/p/5132811.html]