Как создать пользовательский токен Firebase Authentication без служебной учетной записи json в nodejs? - PullRequest
0 голосов
/ 19 июня 2019

Я хочу создать собственный токен без использования служебной учетной записи json. Пробовал следующие пункты конфигурации: https://firebase.google.com/docs/auth/admin/create-custom-tokens#using_a_service_account_id

https://firebase.google.com/docs/auth/admin/create-custom-tokens#letting_the_admin_sdk_discover_a_service_account

и использовал приведенный ниже код для генерации токена

admin.auth().createCustomToken(uid)
  .then(function(customToken) {
    // Send token back to client
  })
  .catch(function(error) {
    console.log('Error creating custom token:', error);
  });

Получение ошибки ниже:

'Не удалось определить учетную запись службы. Обязательно инициализируйте SDK с учетными данными учетной записи службы. Также можно указать учетную запись службы с разрешением iam.serviceAccounts.signBlob. Исходная ошибка: Ошибка: Ошибка при выполнении запроса: getaddrinfo ENOTFOUND метаданные метаданных: 80. Код ошибки: ENOTFOUND '

Используется последний модуль npm "firebase-admin".

Добрый совет.

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Если ваш код не выполняется в управляемой среде выполнения в Google Cloud, вы должны предоставить либо файл JSON служебной учетной записи, либо, по крайней мере, параметр приложения serviceAccountId.

admin.initializeApp({
  serviceAccountId: 'my-client-id@my-project-id.iam.gserviceaccount.com',
});
0 голосов
/ 19 июня 2019

Краткий ответ: вы не можете, ключ sdk - единственный способ аутентифицировать и авторизовать ваше приложение для предоставления разрешений.

Длинный (не очень длинный) ответ: используйте облачную функцию, если она входит в ваш проект, она запустит ее для вас, поэтому вам не нужно использовать ключ для создания экземпляра sdk

...