快速开始
签发 user_token
给产品侧 client 一个可以调用 Base 的用户凭证。
user_token 需要由可信环境签发。开发者后端使用 AdminClient,基于 product_id + user_id 向 Base 申请 token。
import { AdminClient } from "@visiblebase/client";
const client = new AdminClient({
base_url: "https://base.example.com",
admin_secret_key: process.env.VISIBLEBASE_ADMIN_SECRET_KEY,
});
const product = await client.products.create({
name: "Web App",
});
const user = await client.tokens.apply({
product_id: product.product_id,
user_id: "user_123",
metadata: {
plan: "pro",
},
ttl: "7d",
});把 user.user_token 和 product.product_id 返回给产品 client。
metadata 的作用
metadata 可以把套餐、组织 ID 等业务信息带进 hook。
base.all().before(async (ctx) => {
await quotaService.check({
product_id: ctx.product.product_id,
user_id: ctx.user.user_id,
model: ctx.model.model_id,
});
});这样多个 client 可以共享一套鉴权和限额判断。