【发布时间】:2017-09-04 15:37:48
【问题描述】:
[Error: Failed to createSession. Error: An authentication error
occurred: (403) {"code":-1,"message":"Expired token"}]
我能够在我的本地主机服务器上创建一个会话,但是当 我把它投入生产 - 它有 https - 发生错误。
我正在使用带有 Meteor 框架的 tokbox 并将函数包装在一个方法中:
const opentok = new OpenTok(Meteor.settings.public.opentok.apiKey, Meteor.settings.public.opentok.apiSecret);
let createSessionSync = Meteor.wrapAsync(opentok.createSession, opentok);
【问题讨论】:
-
您是否检查过生产环境中的
apiKey和apiSecret是否正确? -
@bennygenel 是的,apikey 和 apiSecret 是正确的
-
这看起来像是一个 tokbox 错误。你能添加一个回调到 createSession
opentok.createSession(function(err, session) { if (err) return console.log(err); // save the sessionId console.log('session', session.sessionId); });。也许错误消息将有助于解决问题。 -
返回的错误消息是令牌错误消息,奇怪的是我只是重新启动了我的服务器,一切都恢复正常了。我还没有创建任何令牌,它说令牌错误很奇怪
-
当您调用 API 来创建会话时,会生成一个 JSON Web 令牌,该令牌具有编码的过期时间。我的猜测是您的生产服务器上的系统时间已关闭,因此它正在生成已经过期的令牌。然后重新启动服务器重新同步时钟,您就没有问题了。