Как реализовать вариант использования с новым максимальным временем истечения срока действия пользовательской аутентификации Firebase, равным 1 часу?
Пользовательские токены аутентификации и срок их действия: До ограничения в 1 час для каждого токена я создавал пользовательский токен для сервера каждого клиента при регистрации. Маркер будет использоваться на панели администрирования (интерфейсе) для изменения настроек и для извлечения настроек на стороне сервера.
Предыдущий рабочий процесс: После покупки клиента → Мой сервер → созданный токен клиента в течение действительного периода времени (например, 6 месяцев) и отправляет его на клиент → Клиент проверяет/активирует продукт, добавляя токен на свой сервер.
- Сервер клиента: Использует токен для активации продукта. Затем маркер используется для получения настроек из Firebase на стороне сервера.
- Панель администрирования клиента: Токен передается со стороны сервера на панель администрирования (интерфейс). Интерфейс аутентифицируется, и теперь Клиент может изменить настройки.
Принимая во внимание новое ограничение токена на 1 час, каким должен быть мой рабочий процесс? например • Наличие разных токенов для серверной части (предоставление учетных данных для серверов клиентов в управлении облачными проектами Google) и для интерфейсной части? • Обновление токена по истечении срока его действия путем создания конечной точки на моем сервере?
Использование PHP Спасибо
2 answers
В новой Firebase пользовательские токены предназначены для использования только клиентами. Я полагаю, что вы могли бы использовать свой вариант использования, обрабатывая всю логику подключения к БД изнутри вашего клиента. Шаги для этого будут выглядеть следующим образом:
- Назначьте некоторые специальные учетные данные (например, пару имя пользователя/pwd) своим клиентам, когда они регистрируются в вашей службе.
- Сформируйте панель администратора клиента, если клиент входит в систему с этими учетными данными против ваш сервер, создайте для них пользовательский токен и отправьте его обратно на панель администратора.
- Оттуда вызовите signInWithCustomToken (customtoken).
- Теперь выполните все операции чтения и записи, необходимые для базы данных, чтобы позволить вашему клиенту управлять своими настройками.
Предоставление учетных данных для серверов клиентов в управлении облачными проектами Google было бы допустимым вариантом, если вам требуется, чтобы их серверы имели прямой доступ к базе данных, но учетная запись службы предоставит им привилегированный доступ для всей базы данных, а также, возможно, для других частей вашего приложения, поэтому делайте это только в том случае, если вы полностью доверяете серверам, которым вы предоставляете эти учетные данные.
Если я все правильно понял - лучше используйте один токен для каждого сервера клиента с полем метки времени истечения срока действия. И если вы не собираетесь проверять, не истек ли срок действия токена при каждом запросе, периодически выполняйте процесс, который отключит пользовательские серверы после истечения срока действия токена и удалит их из коллекции включенных токенов. это позволяет вам только проверять, что токен находится в коллекции, или отключать сервер клиентов, если срок действия токена истек.