2016-10-07 4 views
1

Я использую signInWithCustomToken, после проверки подлинности я не могу найти, где хранятся мои данные пользовательских требований, которые я установил на стороне сервера (createCustomToken).Где найти данные auth.token, внутри объектов firebase

Я могу видеть их в правилах firebase через auth.token, но как я могу получить к ним доступ через объекты firebase из моего кода javascript.

+0

Вы пробовали это? 'var user = firebase.auth(). currentUser;' https://firebase.google.com/docs/auth/web/manage-users –

+0

yes Я попытался, но не смог найти свои пользовательские свойства внутри currentUser. –

ответ

3

Информация в токене не всегда доступна для вашего кода приложения. Но он встроен в маркере, так что вы можете расшифровать его самостоятельно:

function parseJwt (token) { 
    var base64Url = token.split('.')[1]; 
    var base64 = base64Url.replace('-', '+').replace('_', '/'); 
    return JSON.parse(window.atob(base64)); 
}; 

var user = firebase.auth().currentUser 
user.getToken().then(data => { 
    console.log(parseJwt(data)); 
}); 

Функция для разбора JWT приходит от этого вопроса: How to decode jwt token in javascript

Вы заметите, что он не проверяет, что Идентификатор ID действителен. Это кажется мне хорошим в клиентском коде, поскольку информация будет использоваться самим пользователем в любом случае. Но если вы хотите проверить токен, вам придется использовать более привлекательный метод.

+0

Просто из любопытства, почему эта информация не включена в пользовательский объект, для меня было бы разумно, что после 'signInWithCustomToken' все пользовательские поля будут доступны внутри моего пользователя или объекта auth(). –