【问题标题】:How can i get authentication token when i used firebase REST api? [duplicate]使用 firebase REST api 时如何获取身份验证令牌? [复制]
【发布时间】:2016-12-02 07:48:48
【问题描述】:

嗨,现在我正在使用 firebase REST API

当我使用公共数据库规则时

设置、更新或删除数据库数据成功

/* database rule */
{
  "rules": {
    ".read": true,
    ".write": true
  }
}

/* Put data to database successful */
curl -X PUT -d '{
  "alanisawesome": {
    "name": "Alan Turing",
    "birthday": "June 23, 1912"
  }
}' 'https://mydatabe.firebaseio.com/users.json'

但我想使用 auth REST,我怎样才能获得令牌?这是我的步骤。

首先将数据库规则更改为

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

然后我使用 Firebase SDK 通过 google 登录并获取令牌

你可以看到我通过“console.log(token);”打印令牌

例如我得到的令牌是“AABBCCDD”

var provider = new firebase.auth.GoogleAuthProvider(); 
firebase.auth().signInWithPopup(provider).then(function(result) {      
  var token         = result.credential.accessToken;      
  var user          = result.user;   
  console.log(token);
}).catch(function(error) {
  var errorCode     = error.code;
  var errorMessage  = error.message;     
  var email         = error.email;   
  var credential    = error.credential;      
});

我检查了我的 Firebase 控制台 > Auth > User 并且有我的帐户

这意味着我成功将我的帐户注册到数据库

第二次我像使用 REST API 一样

curl -X PUT -d '{
  "alanisawesome": {
    "name": "Alan Turing",
    "birthday": "June 23, 1912"
  }
}' 'https://mydatabe.firebaseio.com/users.json?auth=AABBCCDD'

但它返回了{ "error" : "Could not parse auth token." }

那么问题是什么?哪一步磨损了?

谢谢

【问题讨论】:

    标签: javascript rest firebase firebase-realtime-database firebase-authentication


    【解决方案1】:

    我不知道到底是什么问题...但要调试您可以尝试

    1. 首先只能通过 REST API 读取
    2. 通过https://jwt.io/检查令牌是否有效。令牌需要三个部分用点隔开,也许你只是没有复制整个字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-25
      • 2021-02-18
      • 2020-08-05
      • 2019-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      相关资源
      最近更新 更多