0

Я использую Firebase в своем приложении Google Chrome. Поскольку у Chrome Apps нет домена и URL-адреса обратного вызова, мне нужно авторизовать его с помощью токена, а не всплывающего окна.Firebase authWithOAuthToken не работает

У меня возникли проблемы с получением authWithOAuthToken работать, даже в браузере.

В этом примере кода первый звонок authWithOAuthPopup работает, я получаю popupData, которая включает в себя информацию учетной записи github и мой токен. Проблема в том, что второй звонок authWithOAuthToken не работает. Я получаю сообщение об ошибке

 db.authWithOAuthPopup("github", function(error, popupData) { 
     if (error) { 
      console.log("Login Failed!", error); 
     } else { 

      console.log("Authenticated successfully with payload: ", popupData); 
      console.log("Now attempting to Authorize with Token..."); 


      db.authWithOAuthToken("github", popupData.token, function (err, tokenData) { 
       if (err) { 
        console.log("Login Failed!", err); 
       } else { 
        console.log("Authenticated successfully", tokenData); 
       } 
      }); 
     } 
    }); 

Мой вывод консоли показывает первый вызов работает, и ошибка второго вызова:

bundle.js:20498 Authenticated successfully with payload: Object 
    Now attempting to Authorize with Token... 
    Login Failed! Error: Invalid authentication credentials provided.(…) 

Как я могу получить authWithOAuthToken работать?

+0

Это не имеет смысла. Почему это когда-нибудь понадобилось? Похож на проблему [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378) – Kato

+0

Этот сокращенный тестовый пример успешно выполняет authWithOAuthoPopup и получает токен от этот обратный вызов. Однако, если я попытаюсь использовать этот токен в authWithOAuthToken, я получаю сообщение об ошибке. Мне нужно только authWithOAuthToken работать, потому что я собираюсь сделать этот звонок из приложения Chrome. Однако я никогда не видел, чтобы это работало. Я не могу заставить его работать даже в браузере ... даже после того, как я получу успешный токен ... как показано в этом примере. Я надеюсь, что ошибка будет воспроизведена с помощью этого кода ... Один вызов работает, а второй - не работает. Как я могу сделать второй вызов для авторизации? – Tabbyofjudah

+0

Итак, вы тестируете модуль Firebase API; сторонняя библиотека? Или попытка протестировать созданный токен из Facebook? Оба кажутся лишними тестами. – Kato

ответ

0

Токен, который вы передадите в authWithOAuthToken(), должен быть токеном GitHub OAuth, а не Firebase. Таким образом, правильный токен будет popupData.github.accessToken, а не popupData.token. Подробнее можно прочитать на token contents here.

Смежные вопросы