2015-11-02 3 views
0

Раньше в документах Firebase и очень нравилось это до сих пор. Будучи n00b, концептуальный вопрос здесь - это токен (JWT), генерируемый аутентификацией Firebase, доступной на стороне клиента?Получение/использование Firebase JWT

Я ищу позвонить по телефону внешнему телефону и использовать JWT как механизм безопасности. Итак:

  • пользователь проверку подлинности с помощью Firebase встроенных поставщиков (чисто на стороне клиента)
  • получить Firebase JWT (мой вопрос)
  • пройти этот JWT, как/когда это необходимо, чтобы внешний сервис и проверить его (с помощью мое приложение FBase secret) для «доступа» к внешнему сервису

По существу, использовать существующие механизмы Firebase как форму «шлюза» для внешних служб.

Я видел old answer здесь - «.... маркер выжить страница перезагружается, то вам необходимо хранить его в некотором роде, так что клиент ...» - это tokenJWT?

Спасибо!

ответ

2

Firebase действительно хранит JWT в локальном хранилище.

JSON.parse(localStorage.getItem("firebase:session::<app-name>")).token 

Вы также можете получить его из authData, где он доступен в качестве значения token собственности.

ref.onAuth(function(authData) { console.log(authData.token); }) 

Но предпочтительный способ делать то, что сказал Крис в комментариях:

ref.getAuth().token 
+0

Perfect - СПАСИБО! – EdSF

+2

Вы также можете получить его с помощью 'ref.getAuth(). Token' –

+0

Принимая легкий маршрут, не так ли? :-) Просто шучу, я добавлю ваш вариант в качестве предпочтительного подхода. –

3

Это правильный способ получить firebase JWT лексема

firebase.auth().currentUser.getToken().then(function(token){ 
    console.log(token); 
}); 
+1

По состоянию на март 2017 года это кажется правильным, см. Https://firebase.google.com/docs/reference/js/firebase.User#getToken – SergGr