#javascript #jwt #client #twilio
#javascript #jwt #клиент #twilio
Вопрос:
При выполнении Twilio.Device(token)
я получаю сообщение об ошибке: {code: 31204, message: "JWT token parsing failed"}
.
Этот сервис (https://jwt.io/#debugger-io ) способен декодировать эти токены, но мой js-клиент — нет. Кроме того, я знаю, что эти токены могут быть проанализированы SDK для iOS и Android, поэтому мне интересно, что не так с моим js-приложением?
Я могу поделиться результатами синтаксического анализа #debugger-io:
[header]{
"alg": "HS256",
"cty": "twilio-fpa;v=1",
"typ": "JWT"
}
[payload]{
"exp": 1553784490,
"grants": {
"identity": "24e7e8b3-bb57-5c6e-8f38-9964e6d4edf7",
"video": {
"room": "d45373f6-5c78-5d8f-997f-c6f070be940d"
}
},
"iat": 1553780890,
"iss": "// some string here",
"jti": "// some string here",
"sub": "// some string here"
}
Я уже пытался запустить Twilio.Device из токена, который получался из quick-start-app, и он отлично работает. Также я использовал quick-start-app с моим токеном, и он также был поврежден из-за этой ошибки.
Приведенный ниже код — это способ получения токена на клиенте:
class CallService{
constructor(private authService: AuthService, private requestService: RequestService){}
public getCallToken$(callId: string): Observable<{token: string}>{
return this.requestService.post('here is our service-url',{
roomName: callId,
userName: this.authService.user.uuid
}
).pipe(catchError((err: HttpErrorResponse) => {
console.warn(err);
alert(`Can't use calls with those parameters: { roomName: ${callId}, userName: ${this.authService.user.uuid} }`);
return confirm('Try it again?') ? this.getCallToken$(callId) : throwError(err)
}))
}
public createDevice(token: string): Twilio.Device{
console.log(token);
return new Twilio.Device(token, {debug: true})
}
}
// this code with injected CallService
this.callService.getCallToken$('//random-id').subscribe(
{token} => {
const device = this.callService.createDevice(token);
device.on('error', err => console.warn(err));
device.on('ready', d => { // ... })
// ... other manipulations
}
)
Я спросил своих серверных разработчиков, преобразуют ли они токены из twilio-api, и они сказали «нет».
Комментарии:
1. это сделано в коде ? Я имею в виду, что это должно быть, потому что вы пометили
javascript
Я просто не вижу ничего в вопросе2. @JaromandaX, да, это приложение angular, но у меня проблема с извлечением этого:
Twilio.Device(token)
, поэтому оно такое маленькое. Я указал этот тег, потому что Twilio имеет много библиотек для любых языков.3. ах, хорошо… итак, вам действительно нужен эксперт twilio (не рассчитывайте на меня) удачи
4. Можете ли вы поделиться кодом, который вы используете для генерации, а также запросить токен? Спасибо!
5. @philnash , я не могу поделиться кодом с генерацией токена, потому что я frontend-разработчик :} , но я отредактировал свой вопрос в соответствии с объяснением того, как я получаю токен. Я почти уверен, что токены верны, потому что они отлично работают с SDK для iOS и Android в одном приложении.