大只鹅 2026-02-04 17:35 采纳率: 87.5%
浏览 3
已采纳

如何在前端frame 嵌入的页面向dify chatflow应用传递额外信息(其他系统的认证token)

我的场景:我的对话型CHATFLOW dify应用。dify应用需要调用仓管系统的http请求,需要传递仓管系统认证token。我前端使用的是 iframe 嵌入 dify,我希望在前端和 dify应用对话时,能向dify应用自动传递前端cookie存储的仓管系统认证token,从而使dify应用能携带仓管系统认证token调用仓管系统的http请求。

我当前的问题:我主要卡在了如何向dify应用传递token信息,我不知道我的前端传递方式是不是正确的,也不知道后端dify应用应该怎么接收的,我应该怎么做才能实现。感谢感谢。

我当前的前端代码:
我尝试通过url携带参数传递到dify应用(我不知道这种传递方法是否正确)

    <CustomDialog
      v-model:visible="showIframeDialog"
      title="AI助手"
      :width="dialogWidth"
    >
      <iframe
        :src="iframeSrc"
        style="width: 100%; height: 600px; border: none;"
        frameborder="0"
        allow="microphone">
      </iframe>
   </CustomDialog>

  const userToken = computed(() => {
    return getToken() || '';
  });

  const iframeSrc = computed(() => {
    const token = userToken.value;
    window.difyChatbotConfig = {
        // 其他配置设置...
        inputs: {
            token: token,
        },
    };
    // 这里的token是临时测试参数
    return `https://udify.app/chatbot/Bcj93xm8UgigIRQj?token="zjh"`;
  });

我的dify应用:
我尝试使用用户输入节点的隐藏的字段token接收,还尝试使用会话变量的token变量接收(我不知道这种接收方法是否正确)

img

我的调试结果:我在前端的 iframe 嵌入 dify对话框中,请求对话,回复的结果首先打印的是我在dify工作流中设置的“直接回复2”节点输出的内容:“输入: 会话变量:系统userID: 3446fd41-60eb-4fa7-8d1e-cab16475af1e传递userID:”,可以从“输入: 会话变量:”看到输入节点获取的token为空, 会话变量的token也为空。所以我判断我的代码是没有接通的。

img

  • 写回答

2条回答 默认 最新

  • 大只鹅 2026-02-05 13:31
    关注

    前端代码:我使用的是在线的dify,由于我在旧的代码中请求的url使用的是/chatbot,我修改为/chat即可。这似乎是与dify版本有关。

    // 将用户token传递到dify应用
    const iframeSrc = computed(() => {
      return `https://udify.app/chat/Bcj93xm8UgigIRQj?token=${encodeURIComponent(userToken.value)}`;
    });
    

    dify应用:通过”用户输入“节点设置隐藏的token变量接收

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 2月5日
  • 创建了问题 2月4日