2016-11-08 2 views
0

Я использую jsonwebtoken на сервере с узлом, и это для проверки клиентских запросов (firebase 2.x SDK):jsonwebtoken.verify с Firebase SDK

const jwt = require('jsonwebtoken') 
jwt.verify(token, <firebase_secret>, (err, decoded) => { }) 

Это работает с запросами от браузера firebase Javascript 2. x и ios firebase 2.x.

Теперь мы обновляем наш ios sdk до firebase 3.x и проверяем, что токен терпит неудачу с этой ошибкой: [JsonWebTokenError: jwt malformed] name: 'JsonWebTokenError', message: 'jwt malformed'.

То, что я хочу сделать, это следующее:

  • использования браузера firebase 2.x
  • использование Ios firebase 3.x
  • использование узла firebase 2.x

ли есть способ получить jwt.verify(), чтобы играть хорошо с токенами, которые поступают из обоих браузеров 2.x и ios 3.x?

ответ

0

Оказывается лексем алгоритмы подписи и личные ключи изменены между Firebase SDKs 2.x и 3.x

  • Node Firebase SDK для 2.x называется firebase-сервер
  • Node Firebase SDK для 3. x называется firebase-admin

Решение, которое я достиг, связано с необходимостью использования обеих библиотек на сервере узлов, а клиенты 2.x отправляют токен с одним ключом, а клиенты 3.x отправляют токен с другим ключом ,

На стороне сервера - либо декодировать библиотеку firebase-сервера, либо библиотеку firebase-admin, в зависимости от того, какой токен был отправлен. Это позволяет нам обновить SDK iOS без одновременного обновления веб-SDK

Смежные вопросы