Firebase 什么';“这是创建一个”的最佳方式;“bot账户”;在火基
我想创建一个firebase应用程序,允许真正的用户互相发送消息或向机器人发送消息 我希望真正的用户能够使用oauth提供程序进行注册,firebase使注册变得简单。一旦注册,他们应该能够创建一个“机器人帐户”,可以用来验证他们想要编写的任何脚本,与我的firebase应用程序交互 示例脚本可以监听任何发布“Hello”消息的人,并回复“Hello to you too!”: 我的问题是如何最好地验证这些机器人?我有两个想法Firebase 什么';“这是创建一个”的最佳方式;“bot账户”;在火基,firebase,firebase-realtime-database,firebase-authentication,Firebase,Firebase Realtime Database,Firebase Authentication,我想创建一个firebase应用程序,允许真正的用户互相发送消息或向机器人发送消息 我希望真正的用户能够使用oauth提供程序进行注册,firebase使注册变得简单。一旦注册,他们应该能够创建一个“机器人帐户”,可以用来验证他们想要编写的任何脚本,与我的firebase应用程序交互 示例脚本可以监听任何发布“Hello”消息的人,并回复“Hello to you too!”: 我的问题是如何最好地验证这些机器人?我有两个想法 使用服务帐户()。在他们的脚本中,他们会调用如下内容进行身份验证:
Firebase.initializeApp({
databaseURL: "https://db.firebaseio.com/",
serviceAccount: "service-account.json",
databaseAuthVariableOverride: {
uid: "user-id"
}
});
firebase.auth().signInWithCustomToken(token)
编辑5/7/16 21:50 GMT 我一直在尝试实施选项2,但我认为它会失败。Firebase会话将过期(默认为24小时),自定义令牌也将过期(3600秒)。因此,如果我的机器人在24小时后注销,并且自定义令牌不能用于重新登录,那么用户将需要生成一个新的自定义令牌。这不起作用-机器人应该保持登录状态 这就引出了第三种选择:
编辑11/7/16 20:36 GMT
firebase node.js库不直接支持选项3。最好的方法是适用于所有用例的方法。听起来使用服务帐户不符合您的安全要求,因此只能为您的机器人程序铸造自定义令牌。谢谢弗兰克-您不认为这是对自定义令牌方法的错误使用吗?i、 e.自定义令牌是否意味着不用于其他用途?我也有点担心“如果您只需要从您自己的服务器连接到Firebase实时数据库,请不要使用自定义令牌。相反,请使用Firebase server SDK”这一页上的“现在尝试实现选项2…”。。。是否可以使用signInWithCustomToken()实现无限会话长度?
firebase.auth().signInWithCustomToken(token)