OpenTok TokBox:开始实时流式广播时禁止REST API访问

时间:2019-02-05 00:11:49

标签: c# .net opentok tokbox

遵循SDK docs中概述的过程。

使用.NET的WebRequest进行API调用。返回状态代码“禁止”以及附加消息“无效的发行者格式”。

我不确定该如何为调用生成令牌。我链接到的部分中的说明只是说:

  

REST API调用必须使用自定义HTTP标头X-OPENTOK-AUTH和JSON Web令牌进行身份验证。创建具有以下声明的JWT令牌。

这使我相信我将使用自己选择的JWT库来创建令牌。所以我做了。我使用了.NET的System.IdentityModel.Tokens.Jwt。

但是,在网站的.NET部分中,出现:

  

您可以通过调用OpenTokSDK.OpenTok实例的GenerateToken ...方法来生成令牌,也可以在创建它之后通过调用OpenTokSDK.Session实例的GenerateToken ...方法来生成令牌。

那是我应该做的吗?那是怎么了

我可以包含我的代码,但是如果我完全采用了错误的方法,那毫无意义。

1 个答案:

答案 0 :(得分:0)

此处是TokBox开发人员的传播者。

OpenTok API中有两个令牌概念。其中一个令牌用于验证OpenTok Session,另一个是JWT令牌,用于验证您从服务器端发出的每个HTTP请求。

您正在尝试创建的令牌似乎与OpenTok REST API进行了交互。您对OpenTok REST API所做的每个请求都必须具有JWT令牌,该令牌由您的API密钥和API Secret签名。签名看起来像这样:

var payload = new Dictionary<string, object>
  {
    { "iss", "12321312" }, // apiKey
    { "ist", "project" },
    { "iat", now }, // current time
    { "exp", expiry } // current time + 300 seconds
  };

您可以使用GenerateJWT中的OpenTok .NET SDK方法作为参考。另外,您可以使用OpenTok .NET SDK发出StartBroadcast请求,该请求将为您处理JWT令牌的创建。

最后,要验证OpenTok会话,您必须使用OpenTok Server SDKs之一。请注意,任何库都不创建用于认证OpenTok会话的令牌。