当我使用firebase REST api时,如何获得身份验证令牌?

时间:2016-07-28 05:11:51

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

您好我正在使用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通过谷歌登录并获取令牌

您可以通过" console.log(令牌);"

看到我打印令牌

例如,我得到的令牌是" 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>用户和我的帐户

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

其次我使用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." }

那么问题是什么?这一步是什么?

由于

1 个答案:

答案 0 :(得分:0)

我不知道到底出了什么问题......但要调试你可以试试

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