Как получить доступ к токену Twitter OAuth после обновления страницы? - PullRequest
0 голосов
/ 11 июня 2018

Следуя документации Firebase по Аутентификация Twitter , мы получаем что-то вроде этого:

<script src="https://www.gstatic.com/firebasejs/5.0.4/firebase-app.js">    </script>
<script src="https://www.gstatic.com/firebasejs/5.0.4/firebase-auth.js"></script>
<script>
    // NOTE: pseudo code
    // initialise the app
    firebase.initializeApp({
        apiKey: "API_KEY",
        authDomain: "AUTH_DOMAIN",
        databaseURL: "DATABASE_URL",
        projectId: "PROJECT_ID",
        storageBucket: "STORAGE_BUCKET",
        messagingSenderId: "MESSAGING_SENDER_ID"
    });

    // create Twitter provider
    provider = new firebase.auth.TwitterAuthProvider();

    // auth with popup
    firebase.auth().signInWithPopup(provider).then(function(result) {
    // in theory we could now access the OAuth token so we can make further requests to the Twitter API.
    var token = result.credential.accessToken;
    var secret = result.credential.secret;
});

Пока все хорошо.Мы можем получить доступ к токену и секрету и сделать любой запрос к Twitter API.

Также в документации есть ссылка на метод firebase.auth().currentUser, который мы можем вызвать после обновления страницы (например).В этом объекте у нас есть доступ к некоторой информации, ранее полученной при первом входе в систему, однако мы не можем получить доступ ни к OAuth-токену, ни к секрету.

Существует дополнительная документация, касающаяся сохранения состояния аутентификации, где упоминаются некоторые другие методы, такие как firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL) который, я думаю, это то, что мне нужно.Однако я до сих пор не могу получить доступ ни к токену, ни к секрету.

Предполагается ли хранить его в файле cookie или записи localStorage при первом входе пользователя в систему?Это даже безопасно?Буду признателен за любую помощь, поскольку я не хочу заставлять своих пользователей входить в твиттер каждый раз, когда они закрывают сайт и открывают его снова.

Спасибо

1 Ответ

0 голосов
/ 13 июня 2018

Firebase Auth не управляет сторонними токенами OAuth.Они только возвращают токены OAuth при входе в систему и впоследствии сбрасывают их.Они не хранят эти данные, поэтому вы не сможете получить их после входа в систему, если не сохраните их локально.Firebase Auth в настоящее время сосредоточена только на предоставлении решения AuthN, а не AuthZ.

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