有什么方法可以使用“ auth REST API”从我的Firebase身份验证用户那里获取“ emailVerified”?

时间:2019-08-26 10:18:50

标签: firebase flutter firebase-authentication

我当前正在使用firebase作为后端Web服务器,并且使用auth REST API来验证我的应用程序中的用户身份(使用email和password登录)。我的问题是我想知道是否有一个http请求,我可以通过它响应,包括是否已验证登录的电子邮件,我曾尝试将其余的API与firebase-Auth软件包混合使用,但是没有工作。

我刚刚找到了“ setAccountInfo”终结点,但是要使其正常工作,我需要发送给用户的确认电子邮件中的“ oobCode”,我无法自动获取。 有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

我认为您可以使用getAccountInfo端点来做到这一点,该端点返回包含emailVerified属性的以下有效负载(来自文档的示例):

{
  "users": [
    {
      "localId": "ZY1rJK0...",
      "email": "user@example.com",
      "emailVerified": false,
      "displayName": "John Doe",
      "providerUserInfo": [
        {
          "providerId": "password",
          "displayName": "John Doe",
          "photoUrl": "http://localhost:8080/img1234567890/photo.png",
          "federatedId": "user@example.com",
          "email": "user@example.com",
          "rawId": "user@example.com",
          "screenName": "user@example.com"
        }
      ],
      "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
      "passwordHash": "...",
      "passwordUpdatedAt": 1.484124177E12,
      "validSince": "1484124177",
      "disabled": false,
      "lastLoginAt": "1484628946000",
      "createdAt": "1484124142000",
      "customAuth": false
    }
  ]
}

样品请求(来自文档,已粘贴以供参考):

curl
'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]'
\
-H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
     

在上面的示例中,您将[API_KEY]替换为Web API密钥   的Firebase项目和[FIREBASE_ID_TOKEN]与用户的   Firebase ID令牌。


PS:我没有尝试过在问题末尾提到的setAccountInfo端点,但是我认为它用于发送(POST)通过电子邮件收到的验证码(来自{{3} }:->“ oobCode:发送到用户电子邮件以进行电子邮件验证的操作代码。”