端点和响应参考
POST/api/shop/session薄荷 — 不记名秘密
DELETE/api/shop/session/:token撤销 — 持有者秘密
在此演示中,铸币通过上述路径上的代理运行。在生产中,会话是在 ADITUS 核心中铸造的——合约是相同的。这两个调用都是服务器到服务器的:您的后端使用客户端的薄荷秘密(在 ADITUS 管理控制台中生成)作为承载token进行身份验证。每次登录一枚薄荷币是正常模式;生成的token就是浏览器所看到的所有token。
您可以使用您自己的凭据尝试这个确切的流程集成测试仪—薄荷,安装,走上旅程。
创建会话——请求
标头价值意义
AuthorizationBearer <mint-secret>您客户的薄荷秘密,在 ADITUS 管理控制台中生成。仅限服务器端 - 绝不能将其发送到浏览器或应用程序包。
Content-Typeapplication/json正文是一个 JSON 对象。
体场类型意义
publicKeystring · 必填会话创建的可发布key。它必须与微前端安装的key相同——以后的每个商店调用都会根据它进行检查(如果不匹配则为 403)。承载key必须属于该key的客户端。
emailstring · 必填会话充当的商店用户。从您经过身份验证的服务器会话(登录/SSO cookie 或 JWT)中获取它 — 切勿从浏览器请求中获取,否则访问者可能会获取其他人的会话。省略它以创建匿名会话:访问者可以浏览并填充购物车,但微前端会阻止经过购物车的步骤,直到您的 onUserRequired 回调提供用户绑定会话(请参阅可选用户流程)。存在但格式错误的电子邮件仍会被拒绝 (400)。
externalUserIdstring · 必填您自己的用户 ID,作为元数据与会话一起存储(对于支持和日志关联很有用)。 ADITUS 不解释。
ttlSecondsstring · 必填会话生命周期(以秒为单位)。默认 20 分钟,上限为 24 小时。当它过期时,shop 调用返回 401 session_expired — 然后铸造一个新的token(例如通过 onSessionExpired 挂钩)。
eventSlugstring · 必填修复了旅程的ENTRY POINT服务器端:设置后,微前端直接在该事件的文章选择上启动;省略,从事件概述开始。因为它是创建会话的一部分,所以浏览器无法操作它。无效字符产生 400 invalid_event_slug;解析为没有实时事件的 slug 会回退到事件概述。
创建会话 - 响应 (200)
场地类型意义
sessionTokenstring不透明token(sess_…)。交给浏览器,作为sessionToken传给mount();微前端在每次商店调用时将其作为 X-Aditus-Session 发送。它不包含用户数据并且无法解码。
expiresAtnumber过期时间为 Unix 时间戳(以毫秒为单位)。纯粹为您自己的调度提供信息 — 微前端自行对 401 做出反应。
撤销会话
删除具有相同承载key的 /api/shop/session/:token — 该key必须属于为其创建会话的客户端。在注销时调用它,以便token随着您自己的会话而消失。响应:{ "revoked": true } (如果会话已过期,则为 false)。撤销是幂等的并且可以安全地“一劳永逸”。
错误是明确的
地位代码意义
503session_not_configured此客户端未配置嵌入会话。
401unauthorized用于创建会话的 secret 无效或缺失。
400invalid_public_key提供的 public key 无效。
400invalid_email提供的电子邮件地址无效。
400invalid_token提供的会话 token 无效。
429rate_limited请求过多,请稍后重试。
403public_key_invalid提供的 public key 格式无效。
403public_key_unknown无法识别提供的 public key。
403public_key_origin_unresolved无法确定此请求的来源。
403public_key_domain_not_allowed此 public key 不允许来自该域名的请求。
401invalid_session提供的会话无效。
401session_expired提供的会话已过期。
403session_requires_public_key此会话需要 public key。
403session_key_mismatchpublic key 与会话不匹配。
403anonymous_session匿名会话无法执行此操作。