Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Reactjs AWS Cognito,使用amplify检查经过身份验证的用户是否在组中或是管理员_Reactjs_Amazon Cognito_Aws Amplify - Fatal编程技术网

Reactjs AWS Cognito,使用amplify检查经过身份验证的用户是否在组中或是管理员

Reactjs AWS Cognito,使用amplify检查经过身份验证的用户是否在组中或是管理员,reactjs,amazon-cognito,aws-amplify,Reactjs,Amazon Cognito,Aws Amplify,我试图通过检查认证用户是否属于特定组来确定其是否为admin。 我在React应用程序中使用了amplify,并尝试了几种方法,例如Auth.currentUserInfo、Auth.currentAuthenticatedUser以及获取jwt令牌以查看它是否以某种方式返回到令牌中,但我没有找到任何相关信息。 我看到一些人说存在一个有效负载cognito:令牌中的组,但这可能会改变,因为在我返回的令牌中它不存在 另一件我认为有效的事情是jwt aws.cognito.signin.user.a

我试图通过检查认证用户是否属于特定组来确定其是否为admin。 我在React应用程序中使用了amplify,并尝试了几种方法,例如Auth.currentUserInfo、Auth.currentAuthenticatedUser以及获取jwt令牌以查看它是否以某种方式返回到令牌中,但我没有找到任何相关信息。 我看到一些人说存在一个有效负载cognito:令牌中的组,但这可能会改变,因为在我返回的令牌中它不存在

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


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

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

下面是一个简短的例子:

从'aws amplify'导入{Auth}; const user=wait Auth.currentAuthenticatedUser; //用户所属的组数组 user.signInUserSession.accessToken.payload[cognito:groups]
您可以从会话中获取用户组。它位于user.signInUserSession.accessToken.payload[cognito:groups]中,它将包含用户的所有组的数组

下面是一个简短的例子:

从'aws amplify'导入{Auth}; const user=wait Auth.currentAuthenticatedUser; //用户所属的组数组 user.signInUserSession.accessToken.payload[cognito:groups]
从cognito得到两个令牌,一个Idtoken和一个Auth令牌。在aws文档中,您可以看到如何验证令牌,因为您使用的是JS,很多npm包都会为您进行验证。我相信IDtoken是保存用户信息(如组/标签)的令牌。使用jwt.io,您可以读取令牌的内容。Hello@PHPNoob,我也尝试获取IdToken,但它会返回诸如电子邮件、身份验证时间等信息,而不返回与组有关的任何信息。您从cognito获得两个令牌,您将获得一个IdToken和一个身份验证令牌。在aws文档中,您可以看到如何验证令牌,因为您使用的是JS,很多npm包都会为您进行验证。我相信IDtoken是保存用户信息(如组/标签)的令牌。使用jwt.io,您可以读取令牌的内容。Hello@PHPNoob,我也尝试获取IdToken,但它会返回电子邮件、身份验证时间等信息,与组无关。超级感谢Dylan,我尝试了几种方法,但这一种和您的答案正是我需要的,再次感谢您!非常感谢,帮助了很多人!超级感谢迪伦,我尝试了几种方法,但这一种和你的答案正是我所需要的,再次感谢你!非常感谢,帮助了很多人!