无法连接到房间:无效的访问令牌 issuer/subject twilio

Unable to connect to Room: Invalid Access Token issuer/subject twilio

我确实想在后端创建一个访问令牌,需要传递给前端才能连接到视频聊天室。

这是我的后端代码

const twilioAccountSid = process.env.twilioAccountSid;
const twilioApiKey = process.env.twilioApiKey;
const twilioApiSecret = process.env.twilioApiSecret;

const room = "cool room";

app.post("/access-token", (req, res) => {
  try {
    console.log(
      "sid",
      twilioAccountSid,
      "key",
      twilioApiKey,
      "secret",
      twilioApiSecret
    );
    const identity = "user";

    // Create Video Grant
    const videoGrant = new VideoGrant({
      room,
    });

    // Create an access token which we will sign and return to the client,
    // containing the grant we just created
    const token = new AccessToken(
      twilioAccountSid,
      twilioApiKey,
      twilioApiSecret,
      { identity: identity }
    );
    token.addGrant(videoGrant);

    // Serialize the token to a JWT string
    console.log(token.toJwt());
    res.status(200).json(token.toJwt());
  } catch (error) {
    console.warn(error);
    res.sendStatus(500);
  }
});

对于 Twilio 帐户 SID,我使用了我的仪表板的 SID,它从 AC 开始 对于 API 键,我添加了我在创建它时给 API 键的友好名称。 API 秘密是 API 密钥的秘密 ID。

token创建成功并传递给前端

这是我的前端代码

const connectRoom = async () => {
  try {
    const token = await axios.post("http://localhost:5000/access-token");

    connect(token.data, { name: roomName, video: { width: 640 } }).then(
      (room) => {
        console.log(`Successfully joined a Room: ${room}`);
        room.on("participantConnected", (participant) => {
          console.log(`A remote Participant connected: ${participant}`);
          participant.tracks.forEach((publication) => {
            console.log("for each");
            if (publication.isSubscribed) {
              const track = publication.track;
              document
                .getElementById("remote-media-div")
                .appendChild(track.attach());
            }
          });
          participant.on("trackSubscribed", (track) => {
            document
              .getElementById("remote-media-div")
              .appendChild(track.attach());
          });
        });
      },
      (error) => {
        console.error(`Unable to connect to Room: ${error.message}`);
      }
    );
  } catch (error) {
    console.log(error);
  }

然后我得到这个错误

Unable to connect to Room: Invalid Access Token issuer/subject

如何解决这个问题?

任何帮助! 提前致谢

您可以在此处(或通过 Console)创建一个 API 密钥。请注意,API 键以 SK....

开头

REST API: API Keys