如何使用JWT for Google firebase生成身份验证令牌?

rma*_*es4 7 oauth jwt firebase swift vapor

所以我正在尝试验证Firebase REST API. 我正在使用Vapor框架服务器端swift,我安装了JWT软件包.

我正在尝试使用serviceAccountKey.json文件和JWT中的数据来生成身份验证令牌.

这是我尝试过的代码:

let payload = try JSON(node: [
        "iat": Date().timeIntervalSince1970,
        "exp": Date().timeIntervalSince1970 + 3600,
        "iss": "client_email from serviceAccountKey.json",
        "aud": "https://accounts.google.com/o/oauth2/token",
        "scope": [
            "https://www.googleapis.com/auth/firebase.database",
            "https://www.googleapis.com/auth/userinfo.email"
        ]
    ])
    let privateKey = "copied from serviceAccountKey.json"

    let signer = try HS256(bytes: privateKey.bytes)

    let jwt = try JWT(payload: payload, signer: signer)
    let token = try jwt.createToken()
    print(token)
Run Code Online (Sandbox Code Playgroud)

serviceAccountKey.json

{
  "type": "service_account",
  "project_id": "",
  "private_key_id": "",
  "private_key": "",
  "client_email": "",
  "client_id": "",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": ""
}
Run Code Online (Sandbox Code Playgroud)

Jus*_*tin 2

如果您只是想让事情正常运行,最好使用版本 1.5.0

.Package(url: "https://github.com/gtchance/FirebaseSwift.git", Version(1,5,0)),
Run Code Online (Sandbox Code Playgroud)

并使用遗留秘密。项目设置>服务帐户>数据库机密