AWS Amplify Cognito 中的禁用用户仍然可以访问 API 中的数据
Posted
技术标签:
【中文标题】AWS Amplify Cognito 中的禁用用户仍然可以访问 API 中的数据【英文标题】:Disabled users in AWS Amplify Cognito still can access to data in the API 【发布时间】:2020-09-24 12:25:56 【问题描述】:Graphql Api 和 Auth 添加到一个全新的项目中。
我转到 Amplify 控制台 -> myapp -> api -> GraphQL API 并单击在 AppSync 中查看。在运行查询部分,我运行如下示例查询:
listTodos
items
name
响应是 UnauthorizedException。这是意料之中的,而且工作正常。
然后,如果我使用 cognito 用户登录,则响应是一些示例 TODOS。这也不错。
如果我转到 Cognito 并禁用用户,我仍然可以运行查询。我期待未经授权或其他事情,而不是实际能够查询我的数据(因为用户被禁用)。
【问题讨论】:
【参考方案1】:Cognito 访问和 ID 令牌对 one hour from the time they are issued 有效。只要用户的令牌仍然有效且未过期,他们将被授权访问 GraphQL API regardless of the user's existence。
Cognito does not offer the ability to revoke access/ID tokens,尽管可以使用 GlobalSignOut API 调用立即撤销刷新令牌。
此限制的一种解决方法是custom logic,它可以在您的应用程序中实现,以在使用 GraphQL API 发起请求之前验证用户是否存在于用户池中/是否处于有效状态。
【讨论】:
以上是关于AWS Amplify Cognito 中的禁用用户仍然可以访问 API 中的数据的主要内容,如果未能解决你的问题,请参考以下文章
AWS Amplify Cognito 中的禁用用户仍然可以访问 API 中的数据
无法使用 aws-amplify 从 cognito 获取更新的属性及其值
AWS-amplify 在请求中包含 cognito Authorization 标头
AuthError - 错误:未正确配置 Amplify / AWS cognito,React JS