跳至正文

7. 接入业务登录并上线 ​

你已经掌握“声明 → 后台 HTTP API → 前端方法 / 组件”的接入链路。接下来把教程中的本地替代实现换成现有业务能力,并完成正式环境验证。

1. 换成业务现有登录体系 ​

移除本地 LocalIdentity 和浏览器令牌输入页。由业务登录系统验证 Bearer / Cookie,产生可信 Principal,再实现 ChatCredentialResolver:

java
@Bean
ChatCredentialResolver chatIdentity(UserCredentialProvider<String> users) {
    return request -> {
        var principal = request.getUserPrincipal();
        if (principal == null) throw new PlatformException(401, "UNAUTHENTICATED", "Login required");
        return users.credentialFor(principal.getName());
    };
}
kotlin
@Bean
fun chatIdentity(users: UserCredentialProvider<String>) = ChatCredentialResolver { request ->
    val principal = request.userPrincipal
        ?: throw PlatformException(401, "UNAUTHENTICATED", "Login required")
    users.credentialFor(principal.name)
}

users 是业务实现的受控凭据映射,不是 SDK 自动创建用户的服务。可以使用底座配置的 OIDC Access Token,也可以在受控管理流程预登记 USER 凭据。普通聊天运行不持有平台管理员凭据、不自动发用户令牌。

Cookie 写请求同时接入 ChatRequestVerifier 与原 CSRF 体系,前端通过 authHeaders 提供对应头。租户和业务数据权限还需 PermissionProvider / 业务查询校验,详见身份、权限与可信上下文。

2. 改用生产发布策略 ​

yaml
sparktide:
  deployment:
    mode: PRODUCTION
    source: tutorial-service
    auto-sync: false

source 应使用你真实业务的稳定标识,清单 managedBy 同步保持一致;已发布的资源不能通过换 source 认领,教程应用建议与正式业务应用分开。

启动只注册 / 检查清单,不自动发布。受控发布程序读取 SparkTideRegistration.registrationReport(),预检后显式 release("发布原因");不向浏览器暴露该方法。检查依赖和版本冲突、默认入口切换与回退,见声明式注册与发布。

3. 部署业务后台和前端 ​

底座用 PostgreSQL 持久化,业务回调配置可访问的 HTTPS 地址和独立密钥;前端生产网关转发 /api/ai 到业务后台,并支持 SSE 长连接。Vite 开发代理只在本机起作用。

前端执行 npm run build,交付生成的 dist。后台按原 Spring 工程打包部署;教程使用 Gradle application 便于运行,不是生产发布模板。详细配置从部署与运维进入。

4. 上线前确认实际行为 ​

要检查的事可观察结果
实际模型与身份服务实网调用成功,登录续期和撤销有效
两用户、两租户会话、业务工具和知识均不串数据
权限收回历史、来源预览和新调用按当前权限拒绝
危险操作批准 / 拒绝符合业务预期,重复请求不重复业务写入
断线、取消和重启订阅恢复对应原 Run;取消明确,不把重试当成重新提交
发布与回退生产重启不发布,精确版本可追溯,默认入口可回退
容量与运维真实并发、模型限额、备份恢复和告警通过验证

本地构建或模型替身只能覆盖本地链路,不代替这张表的正式环境证据。

回滚 ​

关闭 sparktide.chat.enabled 可停用新聊天入口,再回退业务部署 / SDK 版本。底座数据保留;配置通过显式发布和默认入口版本切换回退,不清空数据库或回调账本。

后续学习从能力指南选择你需要的专题;具体方法和参数查SDK 参考。

适用版本:0.1 发布线 · 最近核对:2026-10-09 · SparkTide 产品文档

汇聚智能,驱动涌现。