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

Web Chat未显示登录框:AadV2Bot认证测试问题咨询

解决Web Chat中无法显示OAuth登录卡片的问题

嗨,我之前也碰到过一模一样的情况——Bot模拟器里登录流程顺风顺水,但Web Chat里就是只显示那个奇怪的[File of type 'application/vnd.microsoft.card.oauth']提示,完全看不到登录框。这主要是因为Web Chat和模拟器的运行环境差异,得额外配置几个关键项才能让OAuth卡片正常渲染:

  • 先补全Azure AD应用的重定向URI
    你在Azure AD里注册的身份验证应用(就是AadV2Bot用的那个),必须添加Web Chat的官方回调地址:https://webchat.botframework.com/api/oauth/signin。没加这个地址的话,Web Chat根本没法完成OAuth的回调流程,自然不会显示登录框。去Azure AD的应用注册页面,找到「重定向URI」选项,把这个地址添加上就行。

  • 配置Web Chat的初始化参数
    嵌入Web Chat时,初始化代码里必须带对核心参数,尤其是用户ID和Direct Line令牌,确保Web Chat能正确识别并渲染OAuth卡片。举个示例:

    window.WebChat.renderWebChat({
      directLine: window.WebChat.createDirectLine({ token: '你的Direct Line令牌' }),
      userID: '唯一的用户标识ID',
      username: '显示的用户名'
    }, document.getElementById('webchat'));
    

    另外,如果用的是匿名Direct Line令牌,得先在Azure门户的Bot资源里开启「允许匿名访问」,不然令牌会直接失效。

  • 核对Bot代码里的OAuth连接名称
    检查AadV2Bot代码中的ConnectionName,必须和你在Azure Bot Service里创建的OAuth连接名称完全一致——大小写、拼写都不能错。这个名称是Bot和Azure AD之间的匹配标识,不对应的话,Bot发出的OAuth卡片在Web Chat里会无法被正确解析。

  • 升级Web Chat到最新版本
    旧版本的Web Chat对OAuth卡片的支持可能存在bug,建议直接用CDN加载最新版脚本:

    <script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
    
  • 检查CORS设置(自定义托管页面需注意)
    如果是自己托管Web Chat页面,得把页面域名加到Azure Bot Service的CORS允许列表里。在Azure门户的Bot资源中找到「设置」→「CORS」,添上你的页面域名,否则浏览器会拦截Web Chat和Bot服务之间的通信,导致卡片无法渲染。

按这些步骤逐一排查配置,应该就能在Web Chat里看到正常的登录框了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:08:56