Пересылка токена авторизации через API - PullRequest
0 голосов
/ 04 октября 2018

Моя команда находится в процессе перехода от прямого чтения / записи к и от Firebase RTDB для нашего мобильного и веб-приложения к более классической модели сервер / клиент.

При этом я хотелчтобы увидеть, существует ли механизм для перенаправления токена аутентификации пользователей firebase через наш серверный API в вызов БД.Цель этого состоит в том, чтобы мои правила безопасности могли применяться к токену аутентификации пользовательского запроса, и мне не пришлось бы писать слой для управления доступом к данным пользователя, вместо этого полагаясь на firebase, чтобы обрабатывать его для меня.

1 Ответ

0 голосов
/ 04 октября 2018

Итак, вы хотите проверить базу перед тем, как пользователь получит доступ к данным.В этом случае вы можете использовать firebase getIdToken, как показано ниже

firebase.auth().currentUser.getIdToken(); // which returns promise.

, присоединить этот токен к заголовкам http, а затем в API-вызове проверить токен, как показано ниже

const validateFirebaseIdToken = (request, response, next) => {
cors(request, response, () => {
    if (!request.headers || !request.headers.authorization) {
        return response.status(403).send("Sorry! You're not authorized to access this url");
    }
    const token = request.headers.authorization.split('Bearer ')[1];
    return firebase.auth().verifyIdToken(token).then(decodedId => {
        request.user = {};
        request.user.uid = decodedId.uid;
        return next();
    }).catch(error => {
        console.log(error);
        return response.status(403).send("Sorry! You're not authorized to access this url");
     });
  });
}

Вот как вынеобходимо проверить токен идентификатора firebase с помощью вызова API.Надеюсь, что это дает вам идею.Не стесняйтесь спрашивать, если у вас есть какие-либо сомнения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...