Токен безопасности Agora.io сгенерирован неверно (Golang)

Возникла проблема с правильной работой токена безопасности, сгенерированного на моем сервере. Я модифицировал basicLive.js демонстрации в AgoraWebSDK-NG для работы с моим сервером. Я использую API Golang, предоставленный Agora, для создания токена. Немного информации:

AppID: ---
App Certificate: ---
channel name: liveshow10
uid: 51495 (I assume Agora does not care about this as long as it is uint32)
token expiration seconds: 3600
generated token: 006cb08a5a2ddc049f79f29d9b52e5909b0IABKKxbI64sFWnkyEICQrL+0DeTsrN9ckKMkDj/oir36aV+tq536WyGcIgCHHmUFHNv6XgQAAQCsl/leAgCsl/leAwCsl/leBACsl/le

Но я получаю кучу ошибок в консоли. Я думаю, что это сводится к ошибке авторизации, токен сгенерирован каким-то образом недействителен. Ниже представлена ​​консоль браузера, и спасибо за любую помощь:

введите описание изображения здесь


person Joe Lin    schedule 29.06.2020    source источник
comment
если вы жестко закодируете токен, выдает ли это ошибку? Реализуете ли вы обратные вызовы с истечением срока действия токена и с истечением срока действия?   -  person Hermes    schedule 30.06.2020
comment
Вы используете String или int UID?   -  person Hermes    schedule 02.07.2020
comment
Я использую UID uint32. Я попытался еще раз сгенерировать токен с помощью RtcTokenBuilderSample.py в примере python. И я запустил демонстрацию basicLive, предоставив сгенерированный токен. По-прежнему та же ошибка. Сервер Agora по-прежнему жалуется на недействительный токен.   -  person Joe Lin    schedule 03.07.2020
comment
Попробовал снова с String. Та же ошибка: AgoraRTCError CAN_NOT_GET_GATEWAY_SERVER: недопустимый токен, авторизация не удалась. Кстати, жесткое кодирование токена тоже не помогло, та же ошибка.   -  person Joe Lin    schedule 03.07.2020
comment
Я только что протестировал этот AppId без токена, и он подключается без проблем (digitallysavvy.github.io/group -video-chat) и (webdemo.agora.io/agora-web-showcase/examples/). Это означает, что токены неправильно настроены в вашей учетной записи, поэтому токены не будут работать. можете ли вы отправить мне письмо по электронной почте [email protected]   -  person Hermes    schedule 03.07.2020


Ответы (1)


Для всех, кто следил за этим, проблема была связана с UID. В приведенном выше коде токен создается специально для UID 51495, но в демонстрации Agora метод JoinChannel передает null в качестве значения UID, которое сообщает SDK о создании собственного UID для этого пользователя.

При попытке присоединиться к каналу с другим UID, отличным от того, который использовался для генерации токена, вы получите сообщение об ошибке.

Если вы хотите сгенерировать токен, который может использовать любой пользователь, вам необходимо установить UID равным 0 в генерации токена, а затем вы можете использовать любой UID для присоединения к каналу с этим токеном.

person Hermes    schedule 23.07.2020
comment
Вау ... Не могу поверить, что совершил такую ​​глупую ошибку ... UID был первой причиной моей проблемы, а во-вторых, я не включил сертификаты приложений. После того, как я сделал вышеупомянутое, все заработало очень хорошо. Большое вам спасибо за этот ответ! - person blessing dickson; 29.12.2020
comment
Я чувствовал, что UID был необязательным, как в токене, сгенерированном с консоли Agora. Ваш ответ помог мне с моим бэкендом Agora flutter + PHP - person Eaweb; 12.03.2021
comment
@Eaweb, как вы смогли сгенерировать токен из бэкэнда, каждый раз, когда я генерирую токен на бэкэнде и пытаюсь использовать его на клиенте (почти сразу), у меня истек срок действия токена - person Temi 'Topsy' Bello; 14.05.2021
comment
Как вы рассчитываете срок действия? Взгляните на мое руководство по генерации токенов с помощью nodejs agora.io/en/blog/ - person Hermes; 14.05.2021
comment
Привет, @ Temi'Topsy'Bello, убедитесь, что вы присоединяетесь к каналу с тем же UID, который вы использовали для генерации токена на бэкэнде. Также стоит проверить срок годности. - person Eaweb; 14.05.2021