You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何强制用户登录后才可使用Bot Framework Composer创建的机器人

Bot Framework Composer 实现强制登录的操作方案

默认的OAuth Prompt组件设计为可选验证逻辑,用户点击取消后会自动继续后续对话流,无法实现强制拦截,要实现登录后才能收发消息的效果,按以下步骤配置即可:

  • 配置全局前置拦截
    在Composer的项目设置中开启对话前置拦截规则,所有用户消息进入业务对话流之前,先调用内置的获取用户令牌动作,传入你在Azure Bot渠道配置中绑定的OAuth连接名,将返回结果存入dialog.loginToken变量:
    • 如果dialog.loginToken不为空且在有效期内,正常放行到对应业务对话
    • 如果dialog.loginToken为空/失效,直接将对话流重定向到专用登录对话,不执行任何业务逻辑、不返回任何业务相关内容
  • 改造专用登录对话逻辑,取消旁路出口
    新建独立的登录校验对话,不要把OAuth Prompt直接嵌在业务流程开头:
    1. 在对话起始节点放置OAuth Prompt组件,将组件的AllowInterruptions参数设置为false,禁止用户在登录环节触发其他意图绕开验证
    2. 针对OAuth Prompt的返回结果做严格分支判断:
      • 拿到有效Token:标记用户登录状态为已验证,跳转回用户最初请求的业务节点
      • 返回取消/登录失败/超时结果:直接给用户发送提示 您必须完成账号登录才能使用机器人功能,请点击登录卡片完成验证,然后循环回到当前对话的OAuth Prompt节点,不设置任何跳转到业务功能的出口
  • 补全全局意图的拦截规则
    所有配置了全局触发的意图(比如菜单、帮助、常见问题这类不需要走特定业务流程的指令),都要在触发后的第一个节点增加登录态判断,未登录状态下统一拦截,直接重定向到登录对话,避免用户通过全局指令绕开登录校验。

注意:不要只在主对话开头放一次OAuth Prompt就认为完成了登录校验,该组件本身没有强制拦截的设计,必须配合全局拦截+登录失败重入的循环逻辑,才能彻底堵上绕过登录的路径。

内容的提问来源于stack exchange,提问作者RYUB3N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 10:24:13