Аутентификация / авторизация / сессии AWS Cognito в приложении PHP + ReactJS

Я создаю приложение, в котором ReactJS является компонентом представления, а PHP предоставляет MC MVC в качестве службы RESTful. Однако, как и во многих современных реализациях REST, приложение PHP будет иметь состояние и будет требовать некоторой формы управления сессиями. Я изо всех сил пытаюсь понять, как реализовать эту систему в PHP с использованием ReactJS в качестве внешнего интерфейса, поскольку существует очень мало примеров того, как просто использовать PHP с AWS Cognito, не говоря уже о выделении ReactJS в качестве компонента представления.

Моя реализация Cognito будет состоять в том, чтобы позволить пользователям входить в систему / регистрироваться в основном пуле пользователей, и я буду использовать федеративные удостоверения с Cognito.

Я также буду использовать API Gateway для контроля доступа к маршруту.

Итак, я провел много исследований и до сих пор не уверен, как будет развиваться этот сценарий.

То, что кажется самым быстрым / простым способом сделать это, это использовать размещенные в Cognito пользовательские интерфейсы / формы и AWS Javascript SDK. Тем не менее, это будет использовать только JWT, и я не понимаю, как я могу полагаться на это для сессий PHP.

В качестве примера мне может потребоваться проверить, что пользователь является владельцем записи базы данных (MySQL), прежде чем разрешить операции чтения, обновления или удаления с этой записью. В традиционном приложении PHP с внутренней обработкой сеанса / аутентификации это можно сделать путем сравнения текущего идентификатора пользователя, вошедшего в систему, с идентификатором пользователя, создавшего эту запись, поэтому доступ к сеансу является обязательным.

Итак, если пользователь проходит аутентификацию исключительно на уровне браузера с помощью JWT, я не понимаю, как я могу использовать это для управления сеансами PHP?

Другой вариант — создать собственную форму входа в React, а затем опубликовать содержимое в бэкэнде PHP onSubmit () и использовать AWS PHP SDK чтобы обработать запрос авторизации, установите сеанс на основе этого. Я считаю, что лучший способ сделать это было бы используйте DynamoDB для хранения информации о сеансе.

Учитывая все обстоятельства, я не уверен в том, как создать целостную систему, и я был бы очень признателен за любые советы по этому вопросу. Я просто не могу найти пример функциональной системы, включающей мои потребности и технологии, которые я использую, хотя это кажется достаточно распространенным сценарием.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …