У меня есть приложение на основе PHP, которое использует MySQL в качестве базы данных. В настоящее время я пытаюсь создать систему обмена сообщениями в реальном времени для пользователей приложения. Я нашел Firebase, чтобы быть очень хорошим решением для построения этого. Однако я не уверен, совместима ли планируемая мной архитектура с планируемой архитектурой. Копание документации не дало мне ответов.
Мои сомнения:
-
Я не хочу, чтобы пользователи снова входили в систему, чтобы использовать чат, поэтому я хочу
аутентифицируется через сервер (т.е. из php).
-
Я хочу, чтобы дальнейший чат / обмен сообщениями происходил непосредственно от клиента к Firebase, поскольку я не хочу, чтобы на моем сервере возникали нежелательные накладные расходы, особенно когда прямое соединение не только поддерживается, но и эффективно.
-
Могу ли я пройти аутентификацию через php и получить какой-нибудь секретный ключ или что-то еще, а затем использовать его для безопасного соединения через Js?
я нашел эта ссылка который говорит о кастомной системе аутентификации. Но я не уверен, если это то, что я должен использовать. И если решение я планирую масштабируемым и хорошо.
0
Решение
- Firebase Auth сохраняет сеанс на клиенте через localStorage / indexedDB и представляет собой автономный API, который не требует размещенного сервера. Таким образом, вы не обязаны аутентифицировать пользователя через ваш сервер.
- Вы определенно можете создать приложение для обмена сообщениями полностью на клиенте с базой данных в реальном времени, не направляя трафик на ваш сервер. Вот пример приложения чата, созданного с помощью Firebase: https://github.com/firebase/friendlychat
- Если у вас уже есть система аутентификации, вы можете использовать пользовательскую аутентификацию, которая требует, чтобы после аутентификации пользователя в вашей системе вы чеканили пользовательский токен, затем отправили этот пользовательский токен клиенту и затем signInWithCustomToken. Вот код для создания собственного токена с PHP: https://firebase.google.com/docs/auth/admin/create-custom-tokens#create_custom_tokens_using_the_firebase_admin_sdk
Если у вас нет системы аутентификации, вы можете полностью запустить аутентификацию на стороне клиента. Еще одна хорошая библиотека для аутентификации, построенная на основе Firebase, — это FirebaseUI: https://github.com/firebase/firebaseui-web
0
Другие решения
Других решений пока нет …