1、舉例說明:html
需求:redis
A、B機構須要調用X服務器的接口,那麼X服務器就須要提供開放的外網訪問接口。數據庫
分析:安全
一、開放平臺提供者X,爲每個合做機構提供對應的appid、app_secret。服務器
二、appid是惟一的(不能改變),表示對應的第三方合做機構,用來區分不一樣機構的。app
三、app_secret在傳輸中實現加密功能(祕鑰),該祕鑰能夠發生改變的。加密
四、爲何app_secret是能夠改變的?調用接口須要appid+app_secret生成對應的access_token(臨時性),若是appid和app_secret被泄密,產生安全性問題,若是一但發現被泄密,能夠從新生成一個app_secret。spa
原理:爲每一個合做機構建立對應的appid、app_secret,生成對應的access_token(有效期2小時),在調用外網開放接口的時候,必須傳遞有效的access_token。設計
2、開發步驟htm
一、使用appid+app_secret生成對應的access_token
1.獲取生成的AppId和appSecret,並驗證是否可用 2.刪除以前的accessToken 2.AppId和appSecret保證生成對應惟一的accessToken 注意:以上第二步必須保證在同一事務中 3.返回最新的accessToken
二、使用accessToken調用第三方接口
1.獲取對應的accessToken
2.使用AccessToken查詢redis對應的value(appId)
3.若是沒有獲取到對應的appid,直接返回錯誤提示 4.若是能獲取到對應的appid,使用appid查詢對應的APP信息
5.使用appId查詢數據庫app信息,獲取is_flag狀態,若是爲1,則不能調用接口,不然正常執行
6.直接調用接口業務