项目背景
使用 Coze 提供的代码在网页插入智能体后,发现不同用户之间没有实现会话隔离(可以互相看到对话记录)。
虽然官方文档里也给了解决方案,但写得比较粗略,对低代码用户非常不友好,而且示例代码给的是 Python 的,似乎需要部署后端才能实现。
本文介绍一种纯前端实现用户隔离的方案。
实现原理
先来看官方提供的代码:
<script src="https://lf-cdn.coze.cn/obj/unpkg/flow-platform/chat-app-sdk/1.2.0-beta.10/libs/cn/index.js"></script>
<script>
new CozeWebSDK.WebChatClient({
config: {
bot_id: '**********', // 智能体 ID
},
componentProps: {
title: 'Coze',
},
auth: {
type: 'token',
token: 'pat_********', // 访问令牌
onRefreshToken: function () {
return 'pat_********'; // 备用访问令牌,可以不填
}
}
});
</script>
由于 Coze 是根据令牌来区分对话记录,而我们将令牌写死在代码里,导致所有用户使用的是同一个令牌,看到的也是相同的对话记录。
也就是说,只要给不同用户发不同的令牌,就可以实现用户隔离。
我们可以使用 Coze 提供的 OAuth 应用来为每个用户自动申请新令牌,完整流程如下。

前期准备
需要准备以下四个要素:
- 智能体 ID
- OAuth ID
- OAuth 公钥
- OAuth 私钥
智能体
创建并发布智能体,智能体 ID 可以在地址栏里找到。






