无法生成火力定制令牌

问题描述:

我按照这个指南:https://firebase.google.com/docs/server/setup无法生成火力定制令牌

我已经创建了我的钥匙,并收到了我的*以.json文件。我也有这个代码安装了所需的npm包。

var http = require('http'); 
var httpdispatcher = require('httpdispatcher'); 
var firebase = require('firebase'); 

firebase.initializeApp({ 
    serviceAccount: "<my-service-account>.json", 
    databaseURL: "https://<project-id>.firebaseio.com" 
}); 

const PORT=8080; 

httpdispatcher.onGet("/firebaseCustomToken", function(req, res) { 
    var uid = req.params.uid; 

    if (uid) { 
     var customToken = firebase.auth().createCustomToken(uid); 
     res.writeHead(200, {'Content-Type': 'application/json'}); 
     res.end(JSON.stringify({'firebaseJWT' : customToken})); 
    } else { 
     res.writeHead(400, {'Content-Type': 'text/plain'}); 
     res.end('No uid parameter specified'); 
    } 
});  

function handleRequest(request, response){ 
    try { 
     //log the request on console 
     console.log(request.url); 
     //Disptach 
     httpdispatcher.dispatch(request, response); 
    } catch(err) { 
     console.log(err); 
    }  
} 

//create a server 
var server = http.createServer(handleRequest); 

//start our server 
server.listen(PORT, function(){  
    console.log("Server listening on: http://localhost:%s", PORT); 
}); 

但是发送GET请求时/ firebaseCustomToken?UID = 123456我收到此错误

[Error: error:0906D066:PEM routines:PEM_read_bio:bad end line] 

我已阅读,这可能是与私有密钥的格式做,但怎么可能这是因为我没有修改从Firebase控制台收到的文件?

+0

而且您实际上已将此部分更改为' .json'? –

PEM是访问您应该在.json文件中下载的Firebase的关键。这可能是您的.json文件的路径不正确。

如果您修复此问题,您可能会遇到另一个错误。 Firebase和服务器建立WebSocket连接。当调用createCustomToken()时,会生成令牌并通过websocket连接知道firebase的firebase。您将令牌发送给请求验证的客户端以响应客户端请求。客户端通过调用.signInWithCustomToken(令牌)登录。

您还需要在客户端配置和初始化Firebase。查看网页,iOS或Android文档。

让我知道如果你不能工作,我明天可以发布一些代码片段。

+0

我刚刚解雇了它今晚没有改变任何东西,它的工作!非常奇怪的,也许在firebase结束传播的东西? - 感谢您的回答 –