正在使用无效签名生成Firebase管理员令牌

时间:2018-02-21 02:29:33

标签: node.js firebase parse-platform firebase-authentication firebase-admin

我使用Parse服务器创建了一个App,现在决定在我的应用程序中实现firebase的某些方面。我试图通过在ios上的swift中执行signInWithCustomToken方法来实现这一点。我调用一个休息服务来生成一个firebase令牌,然后使用在我当前的auth系统上有效登录时返回的令牌登录。但是,生成的令牌在将其粘贴到jwt.io时似乎具有无效的签名。我使用的环境是基于节点的(在解析服务器内)。看起来非常简单,我已经跟着火柴基地的指示/在过去的几天里对这个问题倾注而且我真的不确定我做错了什么!继承了我如何生成令牌的休息服务,我用这种方法初始化服务器:

Parse.Cloud.define("initServer", function(request, response){
var admin = require('firebase-admin');

    var serviceAccount = require('/home/bitnami/apps/parse/htdocs/firebase/serviceAccountKey.json');
    console.log(serviceAccount);
    admin.initializeApp({
            credential: admin.credential.cert(serviceAccount),
            databaseURL: 'https://urabo-acb7a.firebaseio.com'
    });

    response.success("Server Init OK");

});

这是我调用从firebase-admin sdk生成令牌的post方法:

  Parse.Cloud.define("generateFirebaseToken", function(request, response) {

    var admin = require('firebase-admin');



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


});

当然,我进入了firebase控制台并生成了私钥,然后将其scp到我的服务器上。我不确定为什么这不起作用,它生成一个令牌,它似乎没有效果或链接到我的帐户。我错过了一些奇怪的编码问题或带有令牌的东西?有没有人对此有所了解?非常感谢!

1 个答案:

答案 0 :(得分:1)

- 主要问题是您的用户是通过您的应用登录REST服务,然后您还尝试使用系统中生成的令牌重新对其进行身份验证?

- 如果他们在经过身份验证后将访问其他REST功能,那么为什么不在返回'a'令牌时成功验证它们?

- 通常,令牌使用或处理受API提供商的限制。另一个选择是直接使用API​​服务的用户身份验证,有一个单独的身份验证系统 - 通常的SignIn流程,然后根据请求的API功能进行API调用。这样您的应用程序就可以与API进行交互,并且用户仍然处于前端。

相关问题