gpt4 book ai didi

火力地堡,OAuth,榆树

转载 作者:行者123 更新时间:2023-12-02 02:55:19 27 4
gpt4 key购买 nike

我正在尝试使用 Elm 实现简单的投票工具 SPA。我想为此使用 Firebase。我发现了 Elm 如何与 Firebase 一起工作的几个选项:

  1. 一些 Elm 包,但那些使用 native 绑定(bind)。
  2. Elm 使用端口与 JS 对话。
  3. 使用 REST API 的 Elm。

我选择了选项 3,它对我有用,但只对我有用。我希望其他用户也可以访问此应用程序。我启用了 google 作为身份验证提供程序,我的实时数据库的规则是:

{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}

我是 Firebase 项目的所有者,这个 Elm 应用程序适合我,我可以看到 GET 的结果,我什至可以发送 PATCH 进行投票。

但是如上所述,没有人可以通过我的应用程序和 REST 访问数据。第一个 GET 请求返回未授权访问,但我可以看到新用户在 Firebase 控制台中登录/注册。

我的应用程序使用我的 API key 并获取访问 token ,然后将访问 token 附加到 REST 请求(我尝试了两种方法:授权、Bearer header 和 ?access_token=)。我已经阅读了几次 Firebase 示例和文档,但我仍然遗漏了一些东西。

是否可以按照我想要的方式设计此应用程序?还应该做什么来授权其他用户的 REST 请求?

最佳答案

就像我在问题中所说的那样,我遗漏了一些东西。在 Slack 上 Elm 社区的大力帮助下,我终于理解了缺失的部分。本页:https://firebase.google.com/docs/database/rest/auth提到两种类型的身份验证。

  1. Google OAuth2 访问 token
  2. Firebase ID token

我已经使用了选项 1,但对于我的简单 SPA,我应该使用选项 2。使用 Firebase SDK 很容易获取 token

firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) {

必须附加到发送到 Firebase 上的实时数据库的每个 HTTP 请求。这样的 token 应该放在查询中 ?auth=

使用此 token ,其他用户可以访问我的应用程序。

关于火力地堡,OAuth,榆树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49772571/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com