實現ValidateApiKey方法

ValidateApiKey 方法是驗證Api-Key的核心邏輯。以下是其實現的關鍵步驟:

  1. 檢查是否需要驗證
    首先,通過調用 MustCheckApiKey 方法,判斷當前請求是否需要驗證Api-Key。例如,對于某些公共API端點,我們可能不需要進行驗證。

  2. 獲取請求信息
    方法接收兩個參數:

    根據這些信息,我們可以靈活地決定是否應用Api-Key驗證。

  3. 驗證Api-Key
    如果需要驗證,則檢查類中 ApiKey 參數的值是否與請求頭中的 api-key 屬性值匹配。如果匹配,則允許請求通過;否則返回 401 Unauthorized 錯誤。


自定義MustCheckApiKey方法

在擴展類中,我們可以重寫 MustCheckApiKey 方法,以滿足具體需求。例如,如果我們希望 GET 請求是公共的,而 POST 請求需要驗證,可以這樣實現:

// 示例代碼
如果請求是GET到Home,則不應用Api-Key驗證

實際案例:保護URL生成端點

以下是一個實際案例,展示如何在項目中應用上述方法:

項目是一個基于IRIS Docker的URL縮短器。在該項目中,我們希望保護短URL生成端點(POST 請求),但允許用戶無需驗證即可訪問縮短的鏈接(GET 請求)。

  1. 擴展Base類
    確保我們的類繼承自 Base.cls 類。例如:

    AQS.urlShopener類.UrlREST擴展了urlShortener.REST.Base
  2. 設置ApiKey參數
    重寫 ApiKey 參數的值,例如:

    參數ApiKey="myRandomApiKeyValue"
  3. 重寫MustCheckApiKey方法
    根據需求,定義哪些請求需要驗證。例如:

    如果是POST請求,則需要驗證Api-Key;如果是GET請求,則無需驗證。

請求驗證示例

以下是一些請求驗證的截圖,展示了正確和錯誤的Api-Key驗證結果:


結語

通過上述方法,我們可以靈活地為Web應用程序的不同端點實現Api-Key驗證,從而提升系統的安全性。我希望本文的內容能對您的項目有所幫助。

現在,讓我們享受新實現的安全功能吧!
.png)


原文鏈接: https://community.intersystems.com/post/how-add-api-key-validation-rest-requests

上一篇:

API安全:開發者全面指南 Permit.io

下一篇:

API 速率限制策略:流控算法、實現原理與實戰方案
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費