通过 REST 登录我的 Firebase 应用程序 https://firebase.google.com/docs/reference/rest/auth 仅返回 1 小时后过期的令牌(根据 REST 响应,为 3600 秒)。我看不出有什么办法可以改变这一点。
使用firebase JS SDK,身份验证“永远”持续存在,这就是我想要实现的目标。但是,如果有办法解决的话,我不想在我的应用程序中包含 JS SDK(主要是因为它的大小(~700kb))。
有没有办法从官方 firebase REST api 获取持久登录?
使用 firebase JS SDK,身份验证“永远”持续
这是因为 JS SDK 自动 负责在当前用户的 Firebase ID 令牌过期时使用刷新令牌获取新用户的 Firebase ID 令牌。请参阅doc。
因此,当您使用 Firebase Auth REST API 时,您需要自己实现此机制,方法是使用允许将刷新令牌交换为 ID 令牌的端点。
为此,您应该使用上次登录时收到的刷新令牌,例如通过使用使用电子邮件/密码登录用户的端点,或上次刷新 ID 令牌时(见下文)。 您将收到包含新的 Firebase ID 令牌和刷新令牌的响应。下次这个新的 ID 令牌过期时,再次使用刷新令牌,依此类推...
转到 Google Coud Console Api & Services -> Credentials 或打开 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())