Это то, чем я сейчас занимаюсь. Не уверен, стоит ли мне отмечать это как «решение», потому что оригинальная проблема остается.
му я пытаюсьаутентифицировать Firebase REST API. Я используюПаровой каркас для стороны сервера 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)
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": ""
}