Firebase Auth REST API - 使用电子邮件/密码登录不会返回刷新令牌

Posted

技术标签:

【中文标题】Firebase Auth REST API - 使用电子邮件/密码登录不会返回刷新令牌【英文标题】:Firebase Auth REST API - signing in with email/password doesn't return refresh token 【发布时间】:2020-01-04 14:36:17 【问题描述】:

当我向https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=<API_KEY> 发布登录请求时,即使登录操作本身成功,响应正文也缺少刷新令牌和过期时间。它看起来像这样:


  "kind": "identitytoolkit#VerifyPasswordResponse",
  "localId": <LOCAL_ID>,
  "email": <EMAIL>,
  "displayName": "",
  "idToken": <ID_TOKEN>,
  "registered": true

确实返回一个 id 令牌,但我尝试使用它来验证 RTDB 请求(以&lt;DATABASE_URL&gt;/.../node.json?auth=&lt;ID_TOKEN&gt; 的形式)并且即使我的数据库有公共数据库,它们也会失败并出现 HTTP 错误 401读/写规则。

注册请求 (https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=&lt;API_KEY&gt;) 返回的响应正文没有同样的问题。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

您需要在请求中将returnSecureToken 设置为true,如REST API docs 中所述。

【讨论】:

以上是关于Firebase Auth REST API - 使用电子邮件/密码登录不会返回刷新令牌的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Auth REST API - 使用电子邮件/密码登录不会返回刷新令牌

当我在标签之间导航时自动注销问题(Firebase Auth rest API)

如何使用rest api写入firebase数据库?

使用django-rest-auth自带登录注册api

Firebase 托管和 Github 操作错误“auth/invalid-api-key”

如何使用 REST + CodeceptJS 测试 API,访问受 Auth0 保护?