【发布时间】:2018-04-17 20:28:58
【问题描述】:
我正在尝试使用 Elm 实现简单的投票工具 SPA。 我想为此使用 Firebase。 我找到了 Elm 如何与 Firebase 一起使用的几个选项:
- 一些 Elm 包,但它们使用的是本机绑定。
- Elm 使用端口与 JS 对话。
- Elm 使用 REST API。
我选择了选项 3,它对我有用,但只对我有用。我希望其他用户也可以访问此应用程序。 我已启用 google 作为身份验证提供程序,我的实时数据库的规则是:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
我是 Firebase 项目的所有者,这个 Elm 应用为我工作,我可以看到 GET 的结果,我什至可以发送 PATCH 进行投票。
但是,如上所述,没有其他人可以通过我的应用程序和 REST 访问数据。第一个 GET 请求返回未经授权的访问,但我可以看到新用户在 Firebase 控制台中登录/注册。
我的应用程序使用我的 API 密钥并获取访问令牌,然后将访问令牌附加到 REST 请求(我尝试了两种方法:授权、承载标头和 ?access_token=)。 我已经多次阅读 Firebase 示例和文档,但仍然缺少一些东西。
是否可以按照我想要的方式设计这个应用程序? 要授权其他用户的 REST 请求,还需要做什么?
【问题讨论】:
-
我想不出其他用户会被拒绝访问的任何特殊原因。如果您希望我们帮助调试,您需要发布一些代码。
-
您可以将“$uid”变量放在您的规则中 - 它代表当前登录用户的 id。使用它,您可以在数据库中创建特定用户可读的部分。您可以在firebase.google.com/docs/database/security 阅读更多内容
标签: firebase oauth-2.0 google-api firebase-authentication elm