【问题标题】:Unable to decode Firebase JWT无法解码 Firebase JWT
【发布时间】:2017-05-27 08:44:23
【问题描述】:

我正在创建一个 Web 应用程序,我想实现 Firebase 身份验证并帮助用户使用 Google、Facebook 或 Twitter 登录。

用户在我的网站上使用 Firebase 登录我在我的 Javascript 中收到登录信息。

根据Firebase documentation,我没有传递在 JS 中收到的 UID,而是将令牌 ID 发送到后端服务器,以便它可以验证源并检索用户 ID。

我使用PHP-JWT 来检查和验证 Firebase 返回的令牌。但是,标头中的Key IDhttps://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com 中定义的任何Key ID 都不匹配,根据verification document,我可以在其中找到公钥。

【问题讨论】:

    标签: javascript php firebase firebase-authentication jwt


    【解决方案1】:

    当您的服务器无法验证令牌时,您能否打印出 Firebase 令牌负载中的“iss”和“exp”字段?颁发者 ('iss') 应以https://securetoken.google.com/ 开头,并且颁发时间 ('iat') 应比服务器收到令牌时的系统时间早 1-2 秒。

    【讨论】:

    • 'iss' => 'accounts.google.com' 'exp' => 1484310143 当我尝试使用 facebook 或 twitter 时,我得到 PHP-JWT 抛出的“错误数量的段”。正如你之前所说,ISS 应该以securetoken.google.com 开头,但不知何故它显示accounts.google.com!
    • 您的服务器收到的令牌 ('iss' => 'accounts.google.com') 实际上是 Google OAuth2 IdToken,也不是 Firebase 令牌。您可能会发现 FirebaseUI Javascript 库 (github.com/firebase/firebaseui-web) 有助于作为使用 Firebase 实现 Google/Facebook/Twitter 登录的起点。
    • 这是有趣的部分。我确实在使用firebaseui。根据github.com/firebase/firebaseui-web 上的说明添加
    猜你喜欢
    • 2019-09-24
    • 2021-06-30
    • 2021-12-03
    • 2020-12-01
    • 2019-01-17
    • 2018-05-26
    • 2021-11-17
    • 2017-07-31
    • 2020-04-25
    相关资源
    最近更新 更多