2016-11-08 101 views
0

我与节点的服务器上使用jsonwebtoken这验证客户端请求(火力2.x的软件开发工具包):jsonwebtoken.verify与火力地堡SDK

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

这适用于来自浏览器的JavaScript火力2请求。 x和ios Firebase 2.x.

现在,我们将我们的ios sdk升级到firebase 3.x,并验证令牌失败,并显示以下错误:[JsonWebTokenError: jwt malformed] name: 'JsonWebTokenError', message: 'jwt malformed'

我想要做的是以下几点:

  • 使用浏览器2.x的火力
  • 使用的iOS 3.x的火力
  • 使用节点火力2.x的

是有一种方法可以让jwt.verify()与来自浏览器2.x和ios 3.x的令牌一起玩吗?

回答

0

原来火力地堡的SDK 2.x和3.x

  • 节点火力地堡的SDK 2.x的称为火力服务器
  • 节点火力地堡SDK 3之间的改变令牌签名算法和私钥。 x被称为firebase-admin

我到达的解决方案是通过要求节点服务器上的两个库和让2.x客户端使用一个密钥发送令牌,并让3.x客户端使用另一个密钥发送令牌。

在服务器端 - 使用firebase-server库或firebase-admin库进行解码,具体取决于发送哪个令牌。这使我们能够升级iOS SDK而无需同时更新Web SDK