回到目錄 關於Lind.DDD框架里API框架的技術點說明 講解:張占嶺 花名:倉儲大叔 主要框架:Lind.DDD 目錄 關於Lind.DDD.Authorization Lind.DDD為我們提交了強大的API校驗組件,只需要在全局或者要授權的controller上添加對應的過濾器即可完成授權的 ...
關於Lind.DDD框架里API框架的技術點說明
講解:張占嶺
花名:倉儲大叔
主要框架:Lind.DDD
目錄
- 關於Lind.DDD.Authorization
- 關於授權的原理
- 關於ApiValidateModelConfig
- 關於Lind.DDD.CacheConfigFile
- 如何為你的API項目註入授權模塊
- 關於服務端收取過濾器ApiValiadateFilter
- 如何在客戶端生產加密授權串
- 關於請求類與響應類
- 客戶端如何做分頁
關於Lind.DDD.Authorization
Lind.DDD為我們提交了強大的API校驗組件,只需要在全局或者要授權的controller上添加對應的過濾器即可完成授權的過程,這樣,你的API就安全多了。
關於授權的原理
客戶端在向API服務端獲取數據時,需要先申請一個appkey作為自己的標識,當然這也是雙方約定的,我們可以叫做公鑰,而真正做數據校驗的不是它,它只是一個唯一標識,對外公開,真正做數據加密的叫passKey,它是保存在雙方內部的,不對外公開,所以叫密鑰,在客戶端向API服務端通訊時,需要將這個passKey連同參數和appkey傳到服務端,由服務端做相同的校驗碼生產邏輯,最後兩者進行比較,相同即驗證通過。
關於ApiValidateModelConfig
ApiValidateModelConfig主要在服務端存儲所有被收取的客戶端的信息,它是一個列表集合,由AppKey,AppName,PassKey,ExpireDate等元素組成,它們具體的含義如下:
而這個實體在服務端校驗時,會從配置文件XML中反射出來,以遍進行比較,當然,你的配置文件如果沒有修改,它會直接從記憶體里進行獲取,這個邏輯由CacheConfig控制。
關於Lind.DDD.CacheConfigFile
它在早期的大叔框架里就已經出來了,主要用於做配置文件緩存的,當緩存文件被修改後,它的信息將重新被載入,否則將從內在中來進行獲取,這個文件需要管理員在服務端進行維護,在添加和刪除配置時,需要做修改,當然,我們也完全可以把它持久化到其它資料庫里,如sqlserver,redis等介質。
如何為你的API項目註入授權模塊
為API項目註入授權功能很是容易,直接在對應的controller上添加過濾器Lind.DDD.Authorization.Api.ApiValiadateFilter即可。