2016-12-01 7 views
2

В чем разница между auth.uid и auth.token.sub в правилах безопасности базы данных Firebase Realtime?В чем разница между auth.uid и auth.token.sub в правилах безопасности базы данных Firebase Realtime

Я предполагаю, что они одинаковые (пользователь имеет только 1 uid), но они имеют разные описания, хотели бы знать окончательный ответ.

auth.uid: Уникальный идентификатор пользователя, гарантированный как уникальный для всех поставщиков.

auth.token.sub: Пользовательский идентификатор Firebase. Это уникально в рамках проекта.

Приветствия

ответ

2

Они точно такие же. auth.uid предоставляется для обратной совместимости (auth.token не использовался в Правилах безопасности) и простота использования: sub не является общепринятым термином для идентификатора, тогда как uid немного легче понять, и вы не знаете, должны погрузиться в содержимое токена.

3

auth.token.sub это кодировка идентификатор в маркере. SDK Firebase Admin имеют встроенный метод проверки и декодирования идентификационных маркеров. Если предоставленный идентификатор ID имеет правильный формат, срок его действия не истек и правильно подписан, метод возвращает токен декодированного идентификатора. Вы можете захватить uid пользователя или устройства из декодированного токена.

Значит, внутри токена. У вас есть uid пользователя. Но без sdk вы не видите, что причина реального значения не декодируется. Это для безопасности.

Если вы хотите использовать это, вам необходимо декодировать это с помощью метода verifyIdToken().

Пример на Node.js

// idToken comes from the client app (shown above) 

admin.auth().verifyIdToken(idToken) 
    .then(function(decodedToken) { 
    var uid = decodedToken.uid; 
    // ... 
    }).catch(function(error) { 
    // Handle error 
    }); 

Ссылка здесь https://firebase.google.com/docs/auth/admin/verify-id-tokens

Надежда, что будет полезно.