Я аутентифицирую клиентскую часть через Firebase SDK пользователей в своем приложении. Затем начинается сеанс клиентов. Затем я хочу, чтобы пользователь мог опубликовать на конечных точках PHP некоторые данные. Я хочу, чтобы скрипт PHP проверял, поступает ли запрос от аутентифицированного пользователя, а затем проверяет остальную часть данных. Если все в порядке, мы завершаем операцию.Firebase: как проверить сеанс на стороне клиента с помощью скрипта на стороне php-сервера
Я думал сделать это следующим образом:
- Пользователь авторизован на стороне клиента
- На Auth случае запрос маркера JWT с идентификатором пользователя в нем выдается на стороне клиента на выделенный с помощью AJAX PHP-скрипт. Как только маркер генерируется, он сохраняется в cookie сеанса.
- В форме submit будет помещен токен JWT, а конечная точка будет декодировать токен и проверить, является ли сохраненный в нем uid допустимым идентификатором пользователя, зарегистрированным в БД Firebase.
Хорошая или страшная идея с точки зрения безопасности?
Если вы используете 'uid' из autbh firebase как идентификатор пользователя, вы можете просто использовать [JWT, связанный с сеансом Firebase] (https://www.firebase.com/docs/web/api/ firebase/getauth.html) вместо того, чтобы создавать их самостоятельно. –
Правда, но, конечно, я что-то упускаю: как я могу использовать токен, чтобы убедиться, что у пользователя активная сессия. Я декодировал токен, и он имеет только поля uid и iat. Поэтому я знаю, что он был выпущен в определенное время, но как я могу быть уверенным, что он действительный? Существует ли такой метод, который будет применяться на стороне сервера через интерфейс REST? –
Зависит от вашего определения активного сеанса. Сама JWT будет действительна в течение времени, указанного на вашей странице входа в систему Firebase и в Auth. Вы можете проверить это, используя свой REST API, чтобы попытаться прочитать/записать, который мог сделать только аутентифицированный пользователь. –