gpt4 book ai didi

firebase - 无法通过 HTTP/REST 错误 403 Forbidden 访问 FireBase 数据库

转载 作者:行者123 更新时间:2023-12-03 23:47:24 26 4
gpt4 key购买 nike

服务器的 Swift + Vapor 框架 + Xcode 8.1

我正在尝试读取向我的数据库发出 HTTP 请求的 Firebase 实时数据库,但我的权限被拒绝。

这些是步骤:
1. 创建 JWT 使用从“console.developers.google.com”下载的 key 对其进行签名
2. 向 OAuth2 服务器发送 POST 请求并获取访问 token
3. 使用从 OAuth2 服务器收到的访问 token 向 firebase 数据库发送 GET 请求。

我收到“权限被拒绝”,HTTP/1.1 403 Forbidden

// the header of the JSON Web Token (first part of the JWT)
let headerJWT = ["alg":"RS256","typ":"JWT"]

// the claim set of the JSON Web Token
let jwtClaimSet =
["iss":"firebase-adminsdk-kxx5h@fir-30c9e.iam.gserviceaccount.com",
"scope":"https://www.googleapis.com/auth/firebase.database", //is this the correct API to access firebase database?
"aud":"https://www.googleapis.com/oauth2/v4/token",
"exp": expDate,
"iat": iatDate]


drop.get("access") { request in
var accesstoken = "ya29.ElqhA-....XXXX"

let responseFirebase = try drop.client.get("https://fir- 30c9e.firebaseio.com/data/Users.json",
headers: ["Authorization":"Bearer \(accesstoken)"],
query: [:])

print("FirebaseResponse_is \(responseFirebase)")
return "success"
}

Firebase Service Account
FireBase Database Rulles

最佳答案

TLDR;尝试放置 auth=<TOKEN>在您的查询字符串中,而不是使用授权 header 。

Firebase 文档不清楚这是如何工作的。根据文档,有三种方法应该有效。

  • auth=<TOKEN>在查询字符串 ( link )
  • access_token=<TOKEN>在查询字符串 ( link )
  • Authorization: Bearer <TOKEN>在请求头中 ( link )

  • 然而,我不相信所有三种方法都确实有效。我在我的应用程序中使用方法 1,所以我知道一种方法肯定有效。

    关于firebase - 无法通过 HTTP/REST 错误 403 Forbidden 访问 FireBase 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40810233/

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