Я реализую видео призывающего апи для моего проекта, когда я создаю Токен доступа из https://www.twilio.com/user/account/video/dev-tools/testing-tools по «Создать маркер доступа» вариант это даст мне новые генерироваться маркер и, когда я использую его, как показано нижеTwilio Video Calling API реализация
var accessToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImN0eSI6InR3aWxpby1mcGE7dj0xIn0.eyJqdGkiOiJTSzk3ZDI2NGIyOTU1YjM2OWMyOGU4MjA4M2E5MjlmMmE0LTE0NjYwODE1NzQiLCJpc3MiOiJTSzk3ZDI2NGIyOTU1YjM2OWMyOGU4MjA4M2E5MjlmMmE0Iiwic3ViIjoiQUM5ZWE5YjY3ZmM3ZjBjMzE2NTBjNGRmNzkyYzhjYjI2NiIsImV4cCI6MTQ2NjA4NTE3NCwiZ3JhbnRzIjp7ImlkZW50aXR5IjoiQUM5ZWE5YjY3ZmM3ZjBjMzE2NTBjNGRmNzkyYzhjYjI2NiIsInJ0YyI6eyJjb25maWd1cmF0aW9uX3Byb2ZpbGVfc2lkIjoiVlMwNmYzZDdiNTczNGVlYTJhZDdjMWEzYzY4YmMzNjhjNSJ9fX0.976iQ2bMB_tAORxjGkgZFJ-UYGfTidTwfvV0fzySMP0";
var accessManager = new Twilio.AccessManager(accessToken);
он отлично подойдет для меня.
Теперь, когда я использую 2-й вариант «Создать маркер доступа через вспомогательную библиотеку с PHP» и попытаться создать маркер с
// Create an Access Token
$token = new Services_Twilio_AccessToken(
$accountSid,
$apiKeySid,
$apiKeySecret,
$ttl=3600,
$identity=$identity
);
// Grant access to Conversations
$grant = new Services_Twilio_Auth_ConversationsGrant();
$grant->setConfigurationProfileSid($configurationProfileSid);
$token->addGrant($grant);
echo json_encode(array(
'identity' => $identity,
'token' => $token->toJWT(),
));
он также будет генерировать маркер для меня, но когда я использовать созданный маркер, как
Response Токен:
{"identity":"GoldenZeldaGunsight","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImN0eSI6InR3aWxpby1mcGE7dj0xIn0
.eyJqdGkiOiJTSzk3ZDI2NGIyOTU1YjM2OWMyOGU4MjA4M2E5MjlmMmE0LTE0NjYxMzc4MTkiLCJpc3MiOiJTSzk3ZDI2NGIyOTU
1YjM2OWMyOGU4MjA4M2E5MjlmMmE0Iiwic3ViIjoiQUM5ZWE5YjY3ZmM3ZjBjMzE2NTBjNGRmNzkyYzhjYjI2NiIsIm5iZiI6MTQ
2NjEzNzgxOSwiZXhwIjoxNDY2MTQxNDE5LCJncmFudHMiOnsiaWRlbnRpdHkiOiJHb2xkZW5aZWxkYUd1bnNpZ2h0IiwicnRjIjp7ImNvbmZpZ3VyYXRpb25fcHJvZmlsZV9zaWQiOiJWUzA2ZjNkN2I1NzM0ZWVhMmFkN2MxYTNjNjhiYzM2OGM1In19fQ
.vkOxI1tMIWNQVm1AUL1ySTZY5ZyjYDTdvWCKnVIkLmk"}
Я использую это Ответный токен в
var accessManager = new Twilio.AccessManager(data.token);
он не будет работать для меня. это даст мне ошибку как
"Не удалось подключиться к Twilio: не определено ..."
Ответ:
Thu Jun 23 2016 13:22:58 GMT+0530 (India Standard Time) | sip.transport | received WebSocket text message:
SIP/2.0 403 Forbidden
CSeq: 81 REGISTER
Call-ID: 4704t9hejng0hmhih2ui8m
From: <sip:[email protected]cb266.endpoint.twilio.com>;tag=l3bsmhddlr
To: <sip:[email protected]cb266.endpoint.twilio.com>;tag=72132201_50f4772f_8dc5c7c0-ce8e-4a6e-803a-72f6c761338b
Via: SIP/2.0/WSS 127.0.0.1:60911;branch=z9hG4bK2792018;rport=60911
Server: Twilio
X-Twilio-Error: 31201 Authentication failed
Content-Length: 0
Также я испытал как маркер на https://jwt.io, его работа идеально подходит для меня.
Может кто-нибудь, пожалуйста, помогите мне в этом вопросе, где я ошибаюсь с кодом, если вы хотите, я могу передать другие данные учетных данных?
Заранее благодарен.
решаемые
Ребята, I'v получили решение этой проблемы с помощью поддержки.
Решение
В моей старой версии /Services/Twilio/AccessToken.php
, у меня есть атрибут "НСБ": 1466743969 (not-before time), which means it is not valid until
4:52:49 UTC . However according to the timestamp in the log file it was
4:50:27 UTC (10:20:27 IST) ` , Если системные часы сервера, генерирующего токен доступа, быстро заканчиваются на пару минут, это приведет к недействительным не-перед временем.
Более поздние версии библиотеки twilio-php по умолчанию не учитывают атрибут "nbf"
из-за этой проблемы с перекосом часов. Если вы получаете последнюю версию AccessToken.php здесь:
https://github.com/twilio/twilio-php/blob/master/Services/Twilio/AccessToken.php
он будет генерировать маркеры доступа без "nbf"
.
Альтернативное исправление заключается в том, чтобы время сервера было точным, но для его настройки вам потребуется доступ администратора.
, пожалуйста, покажите, как вы создаете свой объект JS данных – alepeino
. Я дал все здесь, не могли бы вы рассказать мне, какой объект данных «данных» вы говорите? –
, когда вы делаете новый Twilio.AccessManager (data.token); 'вы извлекаете данные с помощью запроса ajax? – alepeino