[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); 发布于 2020-01-30 02:57:41
当我们遇到这个问题时,重新启动我们的本地开发服务器并没有解决这个问题。看起来开发人员正在更改他们机器上的时区设置,系统时钟不知何故与开发服务器不同步(尽管当时时区设置为他的本地时间),但后来我们意识到Docker桌面正在创建具有错误日期和时间的容器。这支持了@Adam Ullman上面的评论。
最初,我们通过在Windows系统设置中更改时区来解决此问题。此时,错误消失了,没有重新启动服务器。但是,请参阅下面的更新:
更新:
开发人员再次遇到同样的问题,这次更改时区没有解决它。我们意识到Docker容器是用错误的时间设置创建的(我们通过注销容器中的当前时间来确定这一点)。码头容器中的日期比计算机的时间晚了一天零几个小时。
需要注意的是,删除镜像并重新启动容器本身并不能解决问题。此外,我们发现应用程序中的其他JWT标记也会受到影响,而不仅仅是opentok的标记。
为了解决这个问题,我们必须停止Docker Desktop并重启它。这会将所有新创建的容器时间重新同步到Windows机器时间。
发布于 2017-09-06 01:48:53
重启服务器似乎可以工作,但我只是不知道为什么创建会话与令牌错误有关,因为我甚至还没有使用令牌
https://stackoverflow.com/questions/46040347
复制相似问题