微信access_token設(shè)計的原理解析

2022-12-02    分類: 網(wǎng)站建設(shè)

網(wǎng)站建設(shè)- 建站教程 - 網(wǎng)頁設(shè)計- 微信access_token設(shè)計的原理解析
微信access_token設(shè)計的原理解析

1、access_token是加密的字符串,其目的是為了接口安全考慮,不然隨便就能調(diào)用微信服務(wù)器的接口會有很大風險。

2、用戶在公眾號中填寫的Token就相當于本項目中的xiaoming,是簽名驗證中的一個參數(shù),來保證簽名的安全。

3、EncodingAESKey由開發(fā)者手動填寫或隨機生成,將用作消息體加解密密鑰。

4、signature:微信加密簽名,signature結(jié)合了開發(fā)者填寫的token參數(shù)和請求中的timestamp參數(shù)、nonce參數(shù)。

5、timestamp:時間戳。

6、nonce:隨機數(shù)。

7、echostr:隨機字符串。

8、微信signature加密/校驗流程:

(1)將token、timestamp、nonce三個參數(shù)進行字典序排序。

(2)將三個參數(shù)字符串拼接成一個字符串進行sha1加密。

(3)開發(fā)者獲得加密后的字符串可與signature對比,標識該請求來源于微信。

9、OpenID:為了識別用戶,每個用戶針對每個公眾號會產(chǎn)生一個安全的OpenID,OpenID是使用用戶微信號加密后的結(jié)果,每個用戶對每個公眾號有一個的OpenID,開發(fā)者可通過OpenID來獲取用戶基本信息。

10、UnionID:用來區(qū)分用戶的性,因為只要是同一個微信開放平臺帳號下的移動應用、網(wǎng)站應用和公眾帳號,用戶的UnionID是的。換句話說,同一用戶,對同一個微信開放平臺帳號下的不同應用,UnionID是相同的。

11、AppID:接口身份證號。

12、AppSecret:密碼。

13、access_token:公眾號的全局票據(jù)(登陸后的憑據(jù),證明你已經(jīng)登陸,相當于你拿著票去看演唱會,說明你已經(jīng)買票了,才會讓你進)。

14、expires_in:access_token過期時間,因為這里是第三方服務(wù)器調(diào)用,所以微信服務(wù)器必須返回告知給第三方服務(wù)器過期時間,從而讓第三方服務(wù)器更好處理。

15、access_token使用注意事項:

(1)為了保密appsecrect,第三方需要一個access_token獲取和刷新的中控服務(wù)器。而其他業(yè)務(wù)邏輯服務(wù)器所使用的access_token均來自于該中控服務(wù)器,不應該各自去刷新,否則會造成access_token覆蓋而影響業(yè)務(wù)。

(2)目前access_token的有效期通過返回的expire_in來傳達,目前是7200秒之內(nèi)的值。中控服務(wù)器需要根據(jù)這個有效時間提前去刷新新access_token。在刷新過程中,中控服務(wù)器對外輸出的依然是老access_token,此時公眾平臺后臺會保證在刷新短時間內(nèi),新老access_token都可用,這保證了第三方業(yè)務(wù)的平滑過渡。

(3)3、access_token的有效時間可能會在未來有調(diào)整,所以中控服務(wù)器不僅需要內(nèi)部定時主動刷新,還需要提供被動刷新access_token的接口,這樣便于業(yè)務(wù)服務(wù)器在API調(diào)用獲知access_token已超時的情況下,可以觸發(fā)access_token的刷新流程。

16、access_token兩小時過期時間的設(shè)計原因(網(wǎng)絡(luò)解釋):access_token的過期也是為安全考慮。

(1)想象一種情況,我授權(quán)了一個應用,它拿到了我的access_token,然后我忘記我授權(quán)過了,于是我以后每次發(fā)布的內(nèi)容都被它拿去存起來,或者它利用我的賬號偷偷的發(fā)消息,我一點都不知道。這種情況還是很可怕的。

(2)如果只是做登錄,確實不需要accesstoken,因為已經(jīng)有openid或者uid跟你的用戶對應起來了。但是,這是授權(quán)行為啊,意味這第三方應用可以拿著accesstoken去取你的數(shù)據(jù)啊。所以這里就需要時效性來保證安全了。

17、微信access_token兩小時過期時間的設(shè)計原因(自我理解):微信的token兩小時刷新一次是因為第三方服務(wù)器接入微信服務(wù)器,目的是獲取微信服務(wù)器中的數(shù)據(jù),也就是所謂的第三方登陸,用戶通過第三方服務(wù)器登陸,第三方服務(wù)器再去微信平臺獲取數(shù)據(jù),這樣就需要一個授權(quán)的過程,也就是說微信服務(wù)器同意你某個第三方服務(wù)器獲取數(shù)據(jù)才行,為了把控這個授權(quán)過程,不會因為授權(quán)之后就一直能獲取微信服務(wù)器數(shù)據(jù)這種情況的發(fā)生,所以才有了兩小時刷新一次。

18、微信服務(wù)器接口訪問次數(shù)限制:微信服務(wù)器接口訪問限制次數(shù)是為了防止第三方服務(wù)器因為程序錯誤無限調(diào)用微信服務(wù)器從而使得微信服務(wù)器崩潰,所以才有的訪問次數(shù)限制。

19、簽名驗證:驗證消息的確來自微信服務(wù)器(本項目中為:驗證參數(shù)的確來自于本項目安卓客戶端)。

網(wǎng)站名稱:微信access_token設(shè)計的原理解析
地址分享:http://www.muchs.cn/news17/218767.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)網(wǎng)站策劃、外貿(mào)建站手機網(wǎng)站建設(shè)、企業(yè)建站、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設(shè)