如何从node.js服务器向android客户端发送自定义令牌

时间:2018-01-07 12:10:41

标签: android node.js firebase firebase-authentication

我使用node.js作为我的Android应用程序的后端服务器。 我从http请求接收id-token,并从我们生成自定义令牌,(我使用此链接:https://firebase.google.com/docs/auth/admin/create-custom-tokens)但我仍然坚持如何将自定义令牌发送回我的A​​ndroid客户端。

app.get("/id-tokens/:token", function(req,res){
  // Receiving id-tokens

  var idToken = req.params.token;

  admin.auth().verifyIdToken(idToken)
    .then(function(decodedToken) {
      var uid = decodedToken.uid;
    }).catch(function(error) {
      console.log("Error receiving tokens");
    });


  admin.auth().createCustomToken(uid)
    .then(function(customToken) {
      // Send token back to client?? HOW??
    })
    .catch(function(error) {
      console.log("Error creating custom token:", error);
    });

});

可以在这里使用FCM(Firebase云消息传递)吗? 出于安全原因,我想避免使用http方法。可以使用socket,FCM或任何更安全的方法吗? 我是android的新手,所以任何帮助都会受到赞赏...... :)

1 个答案:

答案 0 :(得分:1)

app.get("/id-tokens/:token", function(req,res){
  var idToken = req.params.token;

  admin.auth().verifyIdToken(idToken)
    .then(function(decodedToken) {
      var uid = decodedToken.uid;

    admin.auth().createCustomToken(uid) // you need to do this call once you have the value for uid
        .then(function(customToken) { // otherwise, uid will be undefined
            res.send(customToken) // since you are using http, just return the token like this
        })
        .catch(function(error) {
        console.log("Error creating custom token:", error);
        });
    }).catch(function(error) {
      console.log("Error receiving tokens");
    });
});