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

MERN栈集成Twilio视频通话时Token授权错误的解决方法

解决Twilio视频通话Token授权失败(TwilioError 20151)问题

核心排查方向及解决方案

  • 验证Token的权限与房间匹配
    后端生成Token时,必须确保VideoGrant的房间配置和前端连接的房间名完全一致:

    • 若允许用户加入任意房间,设置room: '*';若指定特定房间,需和前端传入的房间名严格匹配。
    • 示例Express后端生成Token代码:
      const AccessToken = require('twilio').jwt.AccessToken;
      const VideoGrant = AccessToken.VideoGrant;
      
      const generateVideoToken = (identity, roomName) => {
        const token = new AccessToken(
          process.env.TWILIO_ACCOUNT_SID,
          process.env.TWILIO_API_KEY,
          process.env.TWILIO_API_SECRET,
          { identity }
        );
        const videoGrant = new VideoGrant({ room: roomName || '*' });
        token.addGrant(videoGrant);
        return token.toJwt();
      };
      
  • 确认Token的有效性

    • 将生成的Token复制到Twilio控制台的Token验证工具中,检查签名是否合法、是否过期(默认有效期1小时,可通过ttl参数调整,比如{ ttl: 7200 }设置2小时有效期)。
    • 确保后端使用的TWILIO_ACCOUNT_SID、TWILIO_API_KEY、TWILIO_API_SECRET完全正确,没有拼写错误或环境变量配置错误。
  • 前端连接参数一致性检查
    前端调用connect方法时,identity必须和后端生成Token时传入的identity一致:

    • 示例Next.js前端连接代码:
      import { connect } from 'twilio-video';
      
      const joinVideoRoom = async (token, roomName, userIdentity) => {
        try {
          const room = await connect(token, {
            room: roomName,
            identity: userIdentity, // 必须与Token中的identity匹配
            video: { width: 1280 },
            audio: true
          });
          // 处理房间连接后的逻辑
        } catch (err) {
          console.error('房间连接失败:', err);
        }
      };
      
    • 若前端未指定identity,Twilio会自动生成,但此时后端Token的identity必须为空(不推荐,建议显式指定)。
  • 排查Token传输完整性

    • 在前端打印获取到的Token,与后端生成的Token对比,确保没有被代理、防火墙或CORS中间件篡改。
    • 若使用Next.js API路由获取Token,确保返回的是纯Token字符串,没有额外的HTML或JSON包裹错误。
  • 检查Twilio账号与资源权限

    • 确认生成Token使用的API Key已关联到正确的Twilio账号,且该账号已启用视频服务,无权限限制或欠费情况。
    • 若使用受控房间,需确保房间已创建且配置允许指定用户加入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:42:37