我正在尝试在 Node.js 服务器上验证 Google ID 令牌。
我收到此错误:
Unable to verify the ID Token: jwt.split is not a function
Run Code Online (Sandbox Code Playgroud)
这是我从 Google 官方文档中获取的代码链接:
在 GitHub 上,一位乐于助人的 Google 开发人员告诉我
要创建用户会话,您的 python 后端服务器只需要一个 JWT 库来验证请求中的 Firebase Auth 令牌(签名和受众)并从令牌负载中提取用户信息。
我在验证令牌时遇到问题。
这就是我所在的地方;为了开始迁移,我按照以下步骤进行:
我将 Firebase-Auth 添加到 Android 应用程序中,同时应用程序中仍保留有 Gitkit,直到 Firebase-Auth 正常工作。现在我有两个登录按钮,一个用于登录 Firebase,另一个用于“几乎已弃用”的 Gitkit。
在 firebase.com 上,我将 Google 项目导入到新的 Firebase 项目中,因此用户数据库是相同的。我已经成功在 Android 应用程序中使用 Firebase-Auth,能够以已知用户身份登录,并且可以通过调用 成功检索后端服务器所需的令牌mFirebaseAuth.getCurrentUser().getToken(false).getResult().getToken()。它包含user_id与 GitKit 令牌相同的内容。
现在我正在尝试identity-toolkit-python-client用python-jose. 由于我目前没有将 Firebase 令牌发送到后端,而仅将 Gitkit 令牌发送到后端,因此我想python-jose在 Gitkit 令牌上测试这个库。
在后端,在调用之前,GitKit.VerifyGitkitToken()我现在打印 和 的结果jose.jwt.get_unverified_header(),jose.jwt.get_unverified_claims()以便检查我是否看到了我所期望的结果。结果很好,我能够按照预期查看 Gitkit 令牌的内容。
我的问题来自于验证。我无法用于jose.jwt.decode()验证,因为我不知道需要使用哪个密钥。
jose.jwt.decode(token, key, algorithms=None, options=None, audience=None, issuer=None, subject=None, …