登录后,我可以在控制台的返回的用户数据对象中看到用户的已分配用户池组。我试图将该组分配给变量的所有操作均失败。我想念什么?我可以轻松获取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)