【发布时间】:2016-10-04 16:42:43
【问题描述】:
我有一个 PHP 后端和一个 Android 客户端。使用客户端,用户可以通过 Firebase 使用 Google 或 Facebook 登录我的应用程序。我从FirebaseUser 获取令牌并将其发送到我的服务器。很简单,第一部分(header)包含算法(即 RS256),第二部分(payload)包含所有与用户相关的数据。第三部分是前两个的签名,用于在我的后端启用验证。问题是,我不知道该怎么做。更具体地说是什么。
我使用JWT.io 来检查我的令牌并尝试验证它,但没有成功。由于使用的算法是 RS256,所以验证应该通过公钥来完成。但是什么公钥?我尝试使用我的应用程序的密钥库,尝试使用 Google 的证书,但它只是一直说它无效。我知道 header 的 kid 字段是签名密钥的 ID,我应该查找它,但我不知道在哪里。
Firebase 文档也无济于事。有一个关于 ID token verification 的指南,但这只是没用,因为它是 Java / Node.JS 并且它仍然没有说明任何关于公钥的内容。
所以问题是:我从哪里获得公钥?
【问题讨论】:
标签: php android firebase jwt firebase-authentication