参考
Embassy User
用户账户、AI、Payment、Service 和当前身份 API。
只用 Federation URL 创建 Embassy,再使用它的 user 身份子域。
import { Embassy } from "@downcity/federation";
const embassy = new Embassy({ federation_url: "https://fed.example.com" });
const providers = await embassy.user.account.providers();Account
await embassy.user.account.login({
provider: "email",
bureau_id: "product-web",
input: { email: "[email protected]", password: "password" },
});
const current_user = await embassy.user.current();
const user_token = embassy.user.account.token();
await embassy.user.account.logout();bureau_id 属于登录请求,不属于 Embassy 构造参数。登录成功会更新当前实例持有的 User
Token。创建 Embassy 时也可以直接传入已有 user_token。
Service
const models = await embassy.user.ai.catalog();
const methods = await embassy.user.payment.methods();
const services = await embassy.user.list_services();
const result = await embassy.user.service("rewrite")
.action("formal")
.invoke({ text: "hello" });embassy.user.get() 和 post() 只请求 Federation 根据当前 User Token 解析出的可信 Bureau
server。Embassy 会拒绝把 Token 转发到其他 origin。