AWS Cognito,使用放大检查已验证用户是否在组中或是管理员



我试图通过检查经过身份验证的用户是否属于特定的组来确定它是否是管理员。我在React应用程序中使用了amplify,并尝试了几种方法,如Auth.currentUserInfo()Auth.currentAuthenticatedUser(),还获取了jwt令牌,看看它是否以某种方式在令牌中返回,但我没有找到任何相关信息。我看到一些人说这里的令牌中存在payload cognito:groups,但这可能会改变,因为在我返回的令牌中它不存在。

另一件我认为可行的事情是jwt(aws.cognito.signin.user.admin(中的作用域,但似乎每个使用amplify创建的用户都返回了这个作用域。

是否可以检查经过身份验证的用户是否属于某个组,或者是否是来自cognito的管理员用户?

您可以从会话中获取用户组。它在user.signInUserSession.accessToken.payload["cognito:groups"]中,它将包含用户的所有组的数组。

下面是一个简短的例子:

import { Auth } from 'aws-amplify';
const user =  await Auth.currentAuthenticatedUser();
// the array of groups that the user belongs to
user.signInUserSession.accessToken.payload["cognito:groups"]

最新更新