跳至内容
Micro Frontend

集成测试工具

集成前,请使用您自己的凭据运行完整流程:通过 Public Key 和 mint secret 创建会话,使用该会话挂载微前端,并完成真实的商店流程。每个请求和响应都会清晰展示。

仅限测试页面——secret 绝不能放入浏览器。 此页面模拟宿主的后端部分:mint 调用通常在服务器之间执行,secret 保存在您的服务器环境中。在这里,它只保留在页面内存中(不使用 localStorage 或 cookie),并且仅发送到 mint 端点。在生产环境中,secret 绝不能进入客户端代码——请参阅指南中的 mint 流程。

1. 创建会话

这正是您的后端将执行的调用:向 POST /api/shop/session 发送请求,并将 mint secret 作为 Bearer token。响应是一个绑定到 Public Key、短期有效且内容不透明的 session token。

首次创建会话后,此处将显示完整请求(secret 已隐藏)和原始响应。

2. 启动微前端

嵌入组件将使用您的 Public Key 和创建的 session token 挂载,这与您的页面执行的 mount() 调用完全相同。您可以依次体验活动、商品、购物车、注册和结账流程。

请先创建会话。

微前端支持德语和英语;其他语言将回退到英语。

启动后,微前端将在此处呈现。

3. 在您的项目中使用

将验证过的流程集成到您的项目:mint 调用移至您的后端,并通过环境变量读取 secret;浏览器只能看到 token。代码片段会使用您输入的值,而 secret 始终保留为占位符。

在后端创建会话

server.ts
// SERVER-SEITE deines Hosts — das Secret bleibt in deiner Server-Umgebung.
const res = await fetch("https://<dein-host>/api/shop/session", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.ADITUS_MINT_SECRET}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    publicKey: "pk_dein_key",
    // ohne email: anonyme Gast-Session (browsen + Warenkorb; Checkout erst nach onUserRequired)
  }),
});

const { sessionToken, expiresAt } = await res.json();
// sessionToken an den Browser reichen (inline oder per fetch).

在页面中挂载

page.ts
import { mount } from "@aditus/shop-embed";

const el = document.getElementById("aditus-shop");
if (!el) throw new Error("Mount-Ziel nicht gefunden");

const handle = mount(el, {
  publicKey: "pk_dein_key",
  sessionToken, // vom eigenen Backend gemintet, nur im Speicher halten
});

或者无需构建步骤:Web Component

index.html
<!-- Ohne Build-Schritt: das selbst gehostete Web-Component-Bundle. -->
<script src="https://<deine-aditus-instanz>/api/embed/v1/aditus-shop.js" defer></script>

<aditus-shop
  public-key="pk_dein_key"
  session-token="<vom-backend-geminteter-token>"
></aditus-shop>

完整契约(包括请求头、字段、错误码和撤销流程)请参阅微前端指南.