Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 完成AWS认证流程_Javascript_Reactjs_Amazon Web Services_Authentication_Amazon Cognito - Fatal编程技术网

Javascript 完成AWS认证流程

Javascript 完成AWS认证流程,javascript,reactjs,amazon-web-services,authentication,amazon-cognito,Javascript,Reactjs,Amazon Web Services,Authentication,Amazon Cognito,TLDR 我正在寻找从后端发送cognito JWT以验证用户状态的地方 我目前有一个react应用程序,带有无服务器apollo api和dynamodb数据库,都在本地运行 react客户端使用aws amplify注册、登录等 aws cognito-返回访问、id和刷新令牌 用户还可以登录facebook和google, amplify.Auth.federatedSignIn,返回cognito标识 证书 然后将令牌传递到后端,在那里对其进行验证 到目前为止,我无法找到从后端发送

TLDR 我正在寻找从后端发送cognito JWT以验证用户状态的地方


我目前有一个react应用程序,带有无服务器apollo api和dynamodb数据库,都在本地运行

  • react客户端使用aws amplify注册、登录等 aws cognito-返回访问、id和刷新令牌

  • 用户还可以登录facebook和google, amplify.Auth.federatedSignIn,返回cognito标识 证书

  • 然后将令牌传递到后端,在那里对其进行验证

到目前为止,我无法找到从后端发送令牌的位置,以验证用户是否已登录到cognito。 我已经查过文件了,但这让我更加困惑

据我所知,在生产环境中,API网关或AppSync可以在前端和后端之间插入令牌,但由于我已经在后端验证了令牌,目前是否有端点或SDK方法,我可以使用令牌/访问密钥等来检查用户状态


如果我走错了方向,请随时告诉我

如果需要使用JavaScript SDK验证令牌是否有效且未过期,请使用

const cognitoServiceProvider = new AWS.CognitoIdentityServiceProvider({apiVersion: '2016-04-18'});
await cognitoServiceProvider.getUser({
        AccessToken: accessToken
    }).promise();
如果令牌无效,这将引发错误


如果您使用的是不同的SDK,请查找等效的调用。

Hi Joey,这对于验证令牌非常有用,但在我使用客户端的amplify注销用户后,使用getUser方法时,访问令牌仍然有效。这是否是预期的行为,即访问令牌在创建后过期之前是有效的?当用户注销cognito时,是否有一种方法使令牌无效?是的,这是预期的行为。使JWT无效的唯一方法是等待到期时间。通常,“注销”只是指从本地存储中删除令牌。