相关疑难解决方法(0)

AWS Cognito-如何从令牌对象获取用户的组

登录后,我可以在控制台的返回的用户数据对象中看到用户的已分配用户池组。我试图将该组分配给变量的所有操作均失败。我想念什么?我可以轻松获取client_id,JWT和属性。

对象路径:

let userGroup = user.signInUserSession.accessToken.payload.cognito.groups[0];
Run Code Online (Sandbox Code Playgroud)

但是,这可行:

user.signInUserSession.accessToken.payload.client_id;
Run Code Online (Sandbox Code Playgroud)

对象的这一部分看起来像这样。我可以检索令牌,用户名以及除组之外的几乎所有内容。

signInUserSession: CognitoUserSession
    accessToken: CognitoAccessToken
        jwtToken: ...
        payload:
            auth_time: 1539824552
            client_id: "5u7o1o1...."
            cognito:groups: Array(1)
                0: "admin-full"
                length: 1
        ... more properties here...
        token_use: "access"
        username: "me"
Run Code Online (Sandbox Code Playgroud)

我正在使用Angular 6和AWS-Amplify,但我怀疑这很重要。我的部分代码:

constructor(
    private amplifyService: AmplifyService,
  ) {}

this.amplifyService.auth().currentAuthenticatedUser()
      .then(user => {
         console.log('user data in checkLogin: ', user); // The whole object.
         console.log('user token in checkLogin: ', user.signInUserSession.accessToken.jwtToken); // Retrieves the token.
Run Code Online (Sandbox Code Playgroud)

我的整个会话对象都需要澄清:

CognitoUser {username: "me", pool: CognitoUserPool, Session: null, client: Client, signInUserSession: CognitoUserSession, …}
Session: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-cognito aws-amplify

4
推荐指数
2
解决办法
2992
查看次数