[微信開放文檔](微信開放文檔 (qq.com))
移動(dòng)應(yīng)用微信登錄是基于OAuth2.0 協(xié)議標(biāo)準(zhǔn)構(gòu)建的微信 OAuth2.0 授權(quán)登錄系統(tǒng)俏讹。
在進(jìn)行微信 OAuth2.0 授權(quán)登錄接入之前忌傻,在微信開放平臺(tái)注冊(cè)開發(fā)者帳號(hào)硅瞧,并擁有一個(gè)已審核通過(guò)的移動(dòng)應(yīng)用淮逻,并獲得相應(yīng)的 AppID 和 AppSecret瑟蜈,申請(qǐng)微信登錄且通過(guò)審核后骗村,可開始接入流程脂矫。
授權(quán)流程說(shuō)明
微信 OAuth2.0 授權(quán)登錄讓微信用戶使用微信身份安全登錄第三方應(yīng)用或網(wǎng)站,在微信用戶授權(quán)登錄已接入微信 OAuth2.0 的第三方應(yīng)用后在扰,第三方可以獲取到用戶的接口調(diào)用憑證(access_token)缕减,通過(guò) access_token 可以進(jìn)行微信開放平臺(tái)授權(quán)關(guān)系接口調(diào)用,從而可實(shí)現(xiàn)獲取微信用戶基本開放信息和幫助用戶實(shí)現(xiàn)基礎(chǔ)開放功能等芒珠。
微信 OAuth2.0 授權(quán)登錄目前支持authorization_code 模式桥狡,適用于擁有 server 端的應(yīng)用授權(quán)。該模式整體流程為:
1. 第三方發(fā)起微信授權(quán)登錄請(qǐng)求皱卓,微信用戶允許授權(quán)第三方應(yīng)用后裹芝,微信會(huì)拉起應(yīng)用或重定向到第三方網(wǎng)站,并且?guī)鲜跈?quán)臨時(shí)票據(jù)code參數(shù)娜汁;
2. 通過(guò)code參數(shù)加上AppID和AppSecret等嫂易,通過(guò)API換取access_token;
3. 通過(guò)access_token進(jìn)行接口調(diào)用存炮,獲取用戶基本數(shù)據(jù)資源或幫助用戶實(shí)現(xiàn)基本操作
注意:
- Appsecret 是應(yīng)用接口使用密鑰炬搭,泄漏后將可能導(dǎo)致應(yīng)用數(shù)據(jù)泄漏、應(yīng)用的用戶數(shù)據(jù)泄漏等高風(fēng)險(xiǎn)后果穆桂;存儲(chǔ)在客戶端宫盔,極有可能被惡意竊取(如反編譯獲取Appsecret)享完;
- access_token 為用戶授權(quán)第三方應(yīng)用發(fā)起接口調(diào)用的憑證(相當(dāng)于用戶登錄態(tài))灼芭,存儲(chǔ)在客戶端,可能出現(xiàn)惡意獲取access_token 后導(dǎo)致的用戶數(shù)據(jù)泄漏般又、用戶微信相關(guān)接口功能被惡意發(fā)起等行為彼绷;
- refresh_token 為用戶授權(quán)第三方應(yīng)用的長(zhǎng)效憑證,僅用于刷新access_token茴迁,但泄漏后相當(dāng)于access_token 泄漏寄悯,風(fēng)險(xiǎn)同上。
建議將Appsecret堕义、用戶數(shù)據(jù)(如access_token)放在App云端服務(wù)器猜旬,由云端中轉(zhuǎn)接口調(diào)用請(qǐng)求。
OAuth2.0authorization_code 模式 大致示意圖
通過(guò)access_token可以拿到用戶信息
通過(guò)refresh_token可以獲取新的access_token
在安全方面
OAuth2.0安全設(shè)計(jì)之Authorization Code - bamb00 - 博客園 (cnblogs.com)