Аутентификация Firebase для Realm Cloud с использованием JWT и функции Google Cloud

Я пытаюсь использовать JWT для аутентификации в Realm Cloud. Я использую Firebase в качестве службы аутентификации и пытаюсь создать облачную функцию Google для генерации JWT. Я сгенерировал закрытый и открытый ключи, используя команду терминала "ssh-keygen". В руководстве Realm по JWT предложена следующая строка кода для чтения файла ключа:

const key = fs.readFileSync('./functions/id_rsa', 'utf8'); 

Я скопировал закрытый ключ в проект, указал приведенный выше код на файл, но при развертывании облачной функции Google я получил следующее сообщение об ошибке:

⚠ functions [myAuthFunction (us-central1)]: ошибка развертывания. Сбой функции при загрузке кода пользователя. Сообщение об ошибке: Код в файле index.js не может быть загружен. Есть ли синтаксическая ошибка в вашем коде? Подробная трассировка стека: Ошибка: ENOENT: нет такого файла или каталога, откройте "./functions/id_rsa"

Моя структура проекта выглядит следующим образом: Изображение

Я пытался задать вопрос на форумах Realm, но мне не оказали особой помощи. Целая облачная функция, которую они предложили:

const functions = require("firebase-functions");
const jwt = require('jsonwebtoken');
const fs = require('fs');
const key = fs.readFileSync(’pathToMyPrivateKeyFile');
exports.myAuthFunction = functions.https.onCall((data, context) => {    
    const uid = context.auth.uid 
    const payload = { userId: uid }    
    const token = jwt.sign(payload, { key: key, passphrase: "your-passphrase" }, { algorithm: 'RS256'}),    
    return { token:token }
});

Таким образом, как функция облака Google может читать мой файл закрытого ключа в моем проекте? Открытый ключ хранится на панели инструментов моего Realm Cloud для конкретного экземпляра.

Источники: руководство по Realm Cloud JWT Firebase

0 ответов

Попробуйте пройти просто ./id_rsa или id_rsa. Я считаю, что корень пути находится там, где находится файл index.js.

Другие вопросы по тегам