Я пытаюсь создать веб-приложение, которое будет интегрировано и установлено на Google Диске. Пользователь сможет создавать и делиться файлами моего приложения на своем диске. Я пытаюсь написать его с помощью Firebase, чтобы я мог использовать многие из замечательных новых функций. Тем не менее, мне трудно заставить auth работать последовательно на этих двух платформах.Как обновить Google AccessToken в Firebase? #AskFirebase
Это приложение на стороне клиента (по крайней мере, на данный момент), поэтому я не могу использовать токены и обновлять токены.
Перед тем, как Firebase auth, я бы использовал Google Identity Toolkit with gapi. Обычно это нормально работает, хотя использует всплывающий поток, который не является мобильным.
gapi.signin2.render(elementId, {
longtitle: true,
width: 230,
height: 50,
theme: "dark"
});
var auth2 = gapi.auth2.init({
client_id: CLIENT_ID,
scope: SCOPES.join(" ")
});
auth2.isSignedIn.listen(signinChanged);
auth2.currentUser.listen(userChanged);
Gapi немного неуклюжий, но он работает. маркеров доступа можно получить по телефону
gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse(true));
Как обычно, доступ лексемы длится около часа, а затем истекает. Важно Дело в том, что мы можем просто позвонить GoogleUser.reloadAuthResponse(), чтобы получить обновленный токен доступа. Обратите внимание, что это обновленный токен доступа, а не токен обновления!
Итак, теоретически, я могу использовать этот токен доступа для аутентификации с помощью Firebase как described here, и вам нужно просто жить с помощью всплывающего потока, или try to hack around that.
Все, что сказано, Google говорит, что набор Identity Toolkit заменяется Firebase Authentication и что новые приложения должны использовать Firebase.
Новейшая версия Google Identity Toolkit была выпущена как Аутентификация Firebase. Он включает в себя обновленные клиентские SDK, открытый исходный код UI-библиотеки, управление сеансом и встроенную службу отправки электронной почты для забытых паролей.
Новые проекты должны использовать Firebase Authentication. Чтобы перенести существующий проектиз набора Identity Toolkit в Firebase Authentication, см. Руководство по перенастройке .
Firebase имеет простой API для AUTH с помощью Google. Я могу получить и сохранить AccessToken после аутентификации. Поэтому мне кажется, что я должен реализовать auth, новый и улучшенный способ Firebase. Кроме того, Firebase обеспечивает хороший поток перенаправления, который работает на мобильных устройствах.
Однако существует огромная проблема ...
Это получит маркер доступа.
firebase.auth().getRedirectResult().then(function(result) {
if (result.credential) {
// This gives you a Google Access Token. You can use it to access the Google API.
var token = result.credential.accessToken;
// ...
}
// The signed-in user info.
var user = result.user;
})
Маркер доступа доступен, и я могу использовать его для чтения/записи на диск, ... в течение часа. Как только этот токен истекает, я больше не могу ничего делать. Пользователь по-прежнему регистрируется в Firebase, поэтому я могу продолжать использовать службы Firebase, но мне нужно будет заставить пользователя снова войти в систему, чтобы получить доступ к диску. Этого не будет!
Я ищу эквивалент GoogleUser.reloadAuthResponse() в Firebase.
- Как это сделать?
- Каков рекомендуемый способ создания веб-приложения, которое обращается к службам Firebase и G Suite?
- Есть ли официальные примеры?
Возможно, вы захотите проверить этот [форум] (https://groups.google.com/forum/#!msg/firebase-talk/wAcJFfQlFeg/IUuJXNcgDHgJ), это бит старый, но он обсудил некоторые шаги, как получить токен обновления. Также связанный [форум] (https://groups.google.com/forum/#!topic/firebase-talk/ZPW3xtwn8g0) рассказывает о проблеме, с которой вы столкнулись. Я не уверен, есть ли какие-либо обновления относительно этого, но я думаю, вы можете применить обходной путь на указанном форуме. Надеюсь это поможет. –
Спасибо за ответ и ссылки. Это немного устаревший, особенно первый, который, по моему мнению, до того, как Google приобрел Firebase. Я не видел жизнеспособного обходного пути, кроме неясного комментария, чтобы не использовать их аут Google и реализовать его сам с нуля на сервере с токеном обновления. :( Я не понимаю, почему Google публично рекомендовал бы использовать Firebase в Google Auth вместо Identity Toolkit, если он не поддерживает расширенные полномочия API Google за один час. Я надеюсь, что кто-то из Google ответит и предоставит некоторые окончательное руководство. – Gary