如何从 Firebase REST API 持久保存 Firebase 身份验证

问题描述 投票:0回答:2

通过 REST 登录我的 Firebase 应用程序 https://firebase.google.com/docs/reference/rest/auth 仅返回 1 小时后过期的令牌(根据 REST 响应,为 3600 秒)。我看不出有什么办法可以改变这一点。

使用firebase JS SDK,身份验证“永远”持续存在,这就是我想要实现的目标。但是,如果有办法解决的话,我不想在我的应用程序中包含 JS SDK(主要是因为它的大小(~700kb))。

有没有办法从官方 firebase REST api 获取持久登录?

firebase firebase-authentication
2个回答
4
投票

使用 firebase JS SDK,身份验证“永远”持续

这是因为 JS SDK 自动 负责在当前用户的 Firebase ID 令牌过期时使用刷新令牌获取新用户的 Firebase ID 令牌。请参阅doc

因此,当您使用 Firebase Auth REST API 时,您需要自己实现此机制,方法是使用允许将刷新令牌交换为 ID 令牌的端点。

为此,您应该使用上次登录时收到的刷新令牌,例如通过使用使用电子邮件/密码登录用户的

端点,或上次刷新 ID 令牌时(见下文)。 您将收到包含新的 Firebase ID 令牌和刷新令牌的响应。下次这个新的 ID 令牌过期时,再次使用刷新令牌,依此类推...


0
投票

转到 Google Coud Console Api & Services -> Credentials 或打开 url
    https://console.cloud.google.com/apis/credentials?project=%your_project_id%
  1. 按 + 创建凭据
  2. 选择 API 密钥
  3. 复制 API 密钥(稍后您可能想限制其范围)以在请求 URL 中使用
  4. 现在将此密钥与 Rest API 请求一起使用,并将 key= 和 api 密钥附加到 url 末尾。

例如:

const G_CLOUD_KEY = %YOUR_OBTAINED_KEY%; const url = `https://firestore.googleapis.com/v1/projects/${projectId}/databases/(default)/documents/${collectionId}/{documentId}?key=${G_CLOUD_KEY}` const reponse = await fetch(url, { method: 'GET', headers: { 'Content-Type': 'application/json' } }) .then(response => response.json())

© www.soinside.com 2019 - 2024. All rights reserved.