无法生成火力定制令牌
我按照这个指南: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控制台收到的文件?
PEM是访问您应该在.json文件中下载的Firebase的关键。这可能是您的.json文件的路径不正确。
如果您修复此问题,您可能会遇到另一个错误。 Firebase和服务器建立WebSocket连接。当调用createCustomToken()时,会生成令牌并通过websocket连接知道firebase的firebase。您将令牌发送给请求验证的客户端以响应客户端请求。客户端通过调用.signInWithCustomToken(令牌)登录。
您还需要在客户端配置和初始化Firebase。查看网页,iOS或Android文档。
让我知道如果你不能工作,我明天可以发布一些代码片段。
我刚刚解雇了它今晚没有改变任何东西,它的工作!非常奇怪的,也许在firebase结束传播的东西? - 感谢您的回答 –
而且您实际上已将此部分更改为' .json'? –