認証・認証
243字程度1分以内
2024-11-7
お客様が提供するカスタマーサービス、ユーザーに対语の許可が残っているかどうかを確認する必要があります。。
このSET OFF NUMBERでは、ビジネスインターフェイスをスタンバイするたびに awaitするのではなく、キャッシュを使うことが最善であることに注意してください。実记のケースを下に表示します。
シンプルにする
const espAi = require("esp-ai");
const config = {
auth: async ({ client_params, type }) => {
const { ext1, device_id } = client_params;
const api_key = ext1;
const { success: user_success, message: user_message, code: user_code } = await fetch(`xxx`);
if (!user_success) {
// some code...
infoLog.info(`授权失败:[${user_code}] -> ${user_message}`)
return { success: user_success, message: user_message };
}
return { success: true }
},
};
const espAiIns = espAi(config);##する
この書き込みは非同期で実行する必要があります。つまり、検査证が初めて実行され、その後キャッシュが利用されます。ユーザーがクォータを使用するのは多くても数回だけです。
const espAi = require("esp-ai");
const config = {
auth: async ({ client_params, type }) => {
const { ext1, device_id } = client_params;
const api_key = ext1;
let use_once_interface_res = {};
const cacheData = getCache(ext1, "use_once_interface_pre_res"); // 获取是否可以上一次接口返回的数据
if (!cacheData) {
// 说明是第一次连接,必须要查一次数据库
use_once_interface_res = await fetch(`xxx`);
// 记录缓存
// some code...
} else {
use_once_interface_res = cacheData;
// 查询最新数据缓存,以备下次使用
// some code...
}
const { success: user_success, message: user_message, code: user_code } = use_once_interface_res;
if (!user_success) {
// some code...
infoLog.info(`授权失败:[${user_code}] -> ${user_message}`)
return { success: user_success, message: user_message };
}
return { success: true }
},
};
const espAiIns = espAi(config);
