無需函式庫產生租戶令牌
無需函式庫產生租戶令牌是可行的,但不建議。本指南總結了必要的步驟。
完整流程需要您建立令牌標頭、準備至少包含一組搜尋規則的資料酬載,然後使用 API 金鑰簽署令牌。
準備令牌標頭
令牌標頭必須指定 JWT
類型和加密演算法。支援的租戶令牌加密演算法為 HS256
、HS384
和 HS512
。
{
"alg": "HS256",
"typ": "JWT"
}
建立令牌酬載
首先,建立一組搜尋規則
{
"INDEX_NAME": {
"filter": "ATTRIBUTE = VALUE"
}
}
接下來,找到您的預設搜尋 API 金鑰。查詢取得 API 金鑰端點並檢查 uid
欄位以取得您的 API 金鑰的 UID
curl \
-X GET 'https://127.0.0.1:7700/keys/API_KEY' \
-H 'Authorization: Bearer MASTER_KEY'
為了最大程度的安全性,您還應該為您的租戶令牌設定到期日。以下 Node.js 範例將令牌設定為在其建立後 20 分鐘到期
parseInt(Date.now() / 1000) + 20 * 60
最後,將酬載的所有部分組合成一個物件
{
"exp": UNIX_TIMESTAMP,
"apiKeyUid": "API_KEY_UID",
"searchRules": {
"INDEX_NAME": {
"filter": "ATTRIBUTE = VALUE"
}
}
}
請參閱令牌酬載參考,以了解有關每個酬載欄位需求的更多資訊。
編碼標頭和酬載
然後,您必須將標頭和酬載都編碼為 base64
,將它們串連起來,並使用您選擇的加密演算法對其進行簽名以產生令牌。
使用租戶令牌發出搜尋請求
簽署令牌後,您可以使用它來執行搜尋查詢,方式與使用 API 金鑰相同。
curl \
-X POST 'https://127.0.0.1:7700/indexes/patient_medical_records/search' \
-H 'Authorization: Bearer TENANT_TOKEN'