Tokbox не удалось создать сеанс
[Error: Failed to createSession. Error: An authentication error
occurred: (403) {"code":-1,"message":"Expired token"}]
Я был в состоянии создать сеанс очень хорошо на моем локальном сервере, но когда я запустил его в производство, у которого есть https, возникает ошибка.
Я использую Tokbox с Meteor Framework. и оберните функцию внутри метода:
const opentok = new OpenTok(Meteor.settings.public.opentok.apiKey, Meteor.settings.public.opentok.apiSecret);
let createSessionSync = Meteor.wrapAsync(opentok.createSession, opentok);
3 ответа
Перезагрузка наших локальных серверов разработки не устранила для нас проблему, когда мы столкнулись с этой проблемой. Оказалось, что разработчик менял настройки часового пояса на своем компьютере, и системные часы каким-то образом рассинхронизировались с сервером разработки (хотя часовой пояс был установлен на его местное время в данный момент), но позже мы поняли, что рабочий стол Docker создавал контейнеры с неправильными Дата и время. Это подтверждает комментарий @Adam Ullman выше.
Изначально мы решили эту проблему, изменив часовой пояс в системных настройках Windows. На этом этапе ошибка исчезла без перезапуска серверов. Однако см. Обновление ниже:
ОБНОВИТЬ:
Разработчик снова столкнулся с той же проблемой, и на этот раз изменение часового пояса не помогло. Мы поняли, что контейнер Docker создавался с неправильными настройками времени (мы определили это, выйдя из текущего времени в контейнере). Дата в контейнере докера отставала от времени компьютера на сутки и на несколько часов.
Важно отметить, что удаление образов и перезапуск контейнеров сами по себе не решили проблему. Кроме того, мы обнаружили, что другие токены JWT в приложении также были затронуты не только opentok.
Чтобы решить эту проблему, нам пришлось остановить Docker Desktop и перезапустить его. Это повторно синхронизировало время всех вновь созданных контейнеров с машинным временем Windows.
Перезагрузка сервера, кажется, работает, но я просто не знаю, почему создание сеанса связано с ошибкой токена, так как я еще даже не использовал токен
Я получал ту же ошибку только потому, что машинное время имело ошибку в 1 минуту. Когда я синхронизировался с правильным временем, ошибка сразу прекратилась.