繁体   English   中英

如何验证服务器上的访问令牌

[英]How To Verify Access Token on Server

所以我想创建一个游戏,但我不想在我的服务器上存储用户敏感数据(由于新法律......等)。 所以我认为 cognito 可能会很好。 我阅读了这篇关于可能设置的文章https://aws.amazon.com/blogs/gametech/how-to-set-up-player-authentication-with-amazon-cognito/ 所以我正在尝试设置身份验证,如果客户端从 cognito 获取令牌,然后服务器将允许用户调用某些函数,如果它可以验证该令牌。

让我感到困惑的一件事是,在他们提供的 c++ 代码示例中,他们验证了客户端通过调用 getUserRequest.SetAccessToken(accessToken); 获得了 access_token。 设置并最终验证服务器上的令牌。 好吧,在我的服务器中,我使用的是 php,但我在 sdk 中找不到任何东西来设置这样的访问令牌(我在这里查看https://github.com/aws/aws-sdk-php/tree/master/src )。 然而,在对从 cognito 验证 access_tokens 进行了一些研究之后,我发现了这篇文章https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers .html 本文指出访问令牌只是 JWT,您可以使用 3rd 方 JWT 库对其进行验证。 所以我有点困惑......我应该在aws sdk中找到一个验证服务器上的访问令牌的函数,还是我应该自己验证JWT? 在c++示例中,服务器还设置了一个cognito客户端,是否需要确保令牌过期时刷新?

谢谢你的帮助。

您可以使用亚马逊 PHP SDK 中的getUser方法

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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM