Как проверить токен доступа на сервере

Итак, я хочу создать игру, но я не хочу хранить конфиденциальные данные пользователя на своем сервере (из-за новых законов... и т. д.). Так что я подумал, что cognito может сработать хорошо. Я прочитал эту статью о возможной настройке https://aws.amazon.com/blogs/gametech/how-to-set-up-player-authentication-with-amazon-cognito/. Итак, я пытаюсь настроить аутентификацию, когда клиент извлекает токены из cognito, а затем сервер разрешает пользователю вызывать определенные функции, если он может проверить этот токен.

Одна вещь, которая меня смутила, заключается в том, что в предоставленном ими образце кода на С++ они проверяли, что клиент получил access_token, вызвав getUserRequest.SetAccessToken(accessToken); для установки и окончательной проверки токена на сервере. Ну, на моем сервере я использую php, и я не могу найти ничего в sdk, чтобы установить такой токен доступа (я смотрел здесь https://github.com/aws/aws-sdk-php/дерево/мастер/src). Однако после некоторых исследований по проверке access_tokens из cognito я нашел эту статью https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html. В этой статье говорится, что токены доступа — это просто JWT, и вы можете проверить их с помощью сторонней библиотеки JWT. Так что я немного запутался... Должен ли я найти функцию в aws sdk, которая проверяет токен доступа на сервере, или я должен просто проверить JWT самостоятельно? В примере с C++ сервер также установил клиент cognito. Требуется ли это для обеспечения обновления токена по истечении срока его действия?

Спасибо за любую помощь.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
1 528
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать метод getUser в amazon PHP SDK.

https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html

Пример:

$client = new CognitoIdentityProviderClient([
    'version' => '2016-04-18',
    'region' => '<aws region>',
]);

try {
    $user = $client->getUser([
        'AccessToken' => '<access_token>',
    ]);
} catch (\Aws\CognitoIdentityProvider\Exception\CognitoIdentityProviderException $e) {
    var_dump($e);
}

Большое спасибо! Я все еще на работе, но когда я выйду с работы, я попробую это и посмотрю, работает ли это, чтобы я мог принять ваш ответ (я уверен, что он будет). Еще раз спасибо, вы спасатель.

cxgslegend 19.07.2019 19:52

Не волнуйтесь. Дайте мне знать, если есть какие-либо проблемы.

atymic 20.07.2019 01:51

Любые предложения по этому поводу будут отличными. Я получил токен доступа, используя размещенный пользовательский интерфейс. Затем я попытался выполнить этот код с этим токеном. Я получил это исключение, Aws\Exception\CredentialsException: ошибка при получении учетных данных из службы метаданных профиля экземпляра. (ошибка cURL 7: (см. curl.haxx.se/libcurl/c/libcurl-errors.html)) в C:\xampp\htdocs\demo_cognito_client_app\vendor\aws\aws-sdk-p‌hp\src\Credentials\I‌nstanceProfileProvid‌​er.php:240

Rajesh Kumar Raj 03.06.2020 05:43

@RajeshKumarRaj вам необходимо указать свои учетные данные в CognitoIdentityProviderClient: 'credentials' => [ 'key' => self::$awsKey, 'secret' => self::$awsSecret, ] ключ и секрет от ваших учетных данных безопасности пользователя Amazon-> создать ключ доступа

Jorge Arimany 21.06.2021 16:12

Другие вопросы по теме