当前位置 : 主页 > 网页制作 > HTTP/TCP >

无法通过HTTP / REST错误访问FireBase数据库403禁止访问

来源:互联网 收集:自由互联 发布时间:2021-06-16
服务器 Xcode 8.1的 Swift Vapor框架 我正在尝试阅读Firebase实时数据库向我的数据库发出HTTP请求,但我得到了许可被拒绝. 这些是步骤: 1.使用从“console.developers.google.com”下载的密钥创建JW
服务器 Xcode 8.1的 Swift Vapor框架

我正在尝试阅读Firebase实时数据库向我的数据库发出HTTP请求,但我得到了许可被拒绝.

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

我得到“权限被拒绝”,HTTP / 1.1 403禁止

// 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"
}


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

Firebase文档不清楚其工作原理.根据文档,有三种方法应该有效.

> auth =< TOKEN>在查询字符串中(link)
> access_token =< TOKEN>在查询字符串(link)
>授权:持票人< TOKEN>在请求标题中(link)

我不相信所有这三种方法确实都能正常工作.我在我的应用程序中使用方法1,所以我知道一个可以肯定.

网友评论