所有设备上的AWS Cognito最终用户会话



我有一个应用程序,我使用Cognito +身份提供程序使用谷歌帐户作为我的用户。在Cognito中,我有几个组,在我的应用程序本身中,管理员用户可以向组添加用户,从组中删除用户,等等。问题是,为了反映用户中的这些更改,受影响的用户需要注销并再次进入应用程序。

在每次页面加载/请求时获取一个新的令牌似乎不是一个好的做法。因此,我正在寻找一个Cognito功能,将允许我从它的所有活动会话记录某个用户。我寻找了注销和撤销等功能,但它们要求我拥有受影响用户的访问令牌——而我显然没有。在那之后,我开始玩其他功能,可以有相同的效果,如AdminForgetDevice -我认为,通过忘记一个设备可能Cognito会注销你,但这只是用于2FA,我的应用程序不支持。

在我看来,这是我想做的一件非常基本的事情,而且不可能认为Cognito不支持它。我问错问题了吗?是否有一个端点来完成这个任务,或者我应该使用不同的令牌检索方法?我只是想确保如果用户的组被更改,这些更改会立即反映出来。我现在的方法是强迫所有用户的会话结束。

我联系了AWS支持部门询问这个问题,他们的官方回答是Cognito不会立即终止特定用户的所有会话。但我自己找到了解决办法。您有两个选项:

1。用户全局注销,等待1小时,直到用户会话过期。

不喜欢这个解决方案。如果你删除了一个用户的访问权限,那么这个用户在一个小时内仍然可以使用他们原来的权限是没有意义的。

2。让您的界面意识到用户应该注销,并使用注销函数

这就是我要用的方法。当管理员更改用户的权限时,我正在为该用户创建通知。一旦用户访问了界面,界面就会知道由于通知,该用户已经发生了更改。然后,拥有用户的accessToken的接口可以简单地调用注销函数。

最新更新