
如何獲取免費的ChatGPT API密鑰 – Apidog
ValidateApiKey
方法是驗證Api-Key的核心邏輯。以下是其實現的關鍵步驟:
檢查是否需要驗證
首先,通過調用 MustCheckApiKey
方法,判斷當前請求是否需要驗證Api-Key。例如,對于某些公共API端點,我們可能不需要進行驗證。
獲取請求信息
方法接收兩個參數:
pUrl
:請求的地址,例如 /api/resource
。pMethod
:請求的HTTP方法,如 GET
、POST
、PUT
等。根據這些信息,我們可以靈活地決定是否應用Api-Key驗證。
驗證Api-Key
如果需要驗證,則檢查類中 ApiKey
參數的值是否與請求頭中的 api-key
屬性值匹配。如果匹配,則允許請求通過;否則返回 401 Unauthorized
錯誤。
在擴展類中,我們可以重寫 MustCheckApiKey
方法,以滿足具體需求。例如,如果我們希望 GET
請求是公共的,而 POST
請求需要驗證,可以這樣實現:
// 示例代碼
如果請求是GET到Home,則不應用Api-Key驗證
以下是一個實際案例,展示如何在項目中應用上述方法:
項目是一個基于IRIS Docker的URL縮短器。在該項目中,我們希望保護短URL生成端點(POST
請求),但允許用戶無需驗證即可訪問縮短的鏈接(GET
請求)。
擴展Base類
確保我們的類繼承自 Base.cls
類。例如:
AQS.urlShopener類.UrlREST擴展了urlShortener.REST.Base
設置ApiKey參數
重寫 ApiKey
參數的值,例如:
參數ApiKey="myRandomApiKeyValue"
重寫MustCheckApiKey方法
根據需求,定義哪些請求需要驗證。例如:
如果是POST請求,則需要驗證Api-Key;如果是GET請求,則無需驗證。
以下是一些請求驗證的截圖,展示了正確和錯誤的Api-Key驗證結果:
正確的Api-Key
錯誤或缺失的Api-Key
無需Api-Key的GET請求
通過上述方法,我們可以靈活地為Web應用程序的不同端點實現Api-Key驗證,從而提升系統的安全性。我希望本文的內容能對您的項目有所幫助。
現在,讓我們享受新實現的安全功能吧!
.png)
原文鏈接: https://community.intersystems.com/post/how-add-api-key-validation-rest-requests