javascript - 完成 AWS 身份验证流程
问题描述
TLDR 我正在寻找从后端发送 cognito JWT 以验证用户状态的地方。
我目前有一个 react 应用程序,带有一个无服务器的 apollo api 和 dynamodb 数据库,所有这些都在本地运行。
react 客户端使用 aws-amplify 通过 aws-cognito 注册、登录等 - 返回访问、id 和刷新令牌。
用户还可以使用 facebook 和 google 登录,amplify.Auth.federatedSignIn 返回 cognito 身份凭证。
然后将令牌传递到后端进行验证。
到目前为止,我找不到从后端发送令牌的位置,以验证用户是否已登录到 cognito。我已经搜索了文档,但 TBH 让我更加困惑。
据我了解,在生产 API 网关或 AppSync 中可以拦截前端和后端之间的令牌,但由于我已经在后端验证了令牌,目前有一个端点或 SDK 方法我可以使用令牌/访问密钥等检查用户状态?
如果我以错误的方式解决这个问题,请随时告诉我。
解决方案
如果您需要验证令牌是否有效且未过期,请使用 JavaScript SDK 使用
const cognitoServiceProvider = new AWS.CognitoIdentityServiceProvider({apiVersion: '2016-04-18'});
await cognitoServiceProvider.getUser({
AccessToken: accessToken
}).promise();
如果令牌无效,这将引发错误。
如果您使用不同的 SDK,请查找等效调用。