如何解决AWS Cognito,使用amplify检查经过身份验证的用户是否在组中或是管理员
我正在尝试通过检查经过身份验证的用户是否属于特定组来识别其身份。
我在React应用程序中使用amplify并尝试了几种方法,例如Auth.currentUserInfo()
,Auth.currentAuthenticatedUser()
,还获取了jwt令牌以查看令牌中是否以某种方式返回了该令牌,但是我没有找到任何方法有关的信息。
我看到有人说令牌here中存在一个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"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。