服务器 Xcode 8.1的 Swift Vapor框架 我正在尝试阅读Firebase实时数据库向我的数据库发出HTTP请求,但我得到了许可被拒绝. 这些是步骤: 1.使用从“console.developers.google.com”下载的密钥创建JW
我正在尝试阅读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" }
Firebase文档不清楚其工作原理.根据文档,有三种方法应该有效.
> auth =< TOKEN>在查询字符串中(link)
> access_token =< TOKEN>在查询字符串(link)
>授权:持票人< TOKEN>在请求标题中(link)
我不相信所有这三种方法确实都能正常工作.我在我的应用程序中使用方法1,所以我知道一个可以肯定.