use*_*092 21 amazon-cognito aws-sdk aws-cognito
在AWS Cognito中,您可以将用户添加到组(首次创建组之后).用户可以属于一个或多个组.
使用JavaScipt SDK(https://github.com/aws/amazon-cognito-identity-js),有没有办法读取分配的组?会aws-sdk提供访问权限amazon-cognito-identity-js吗?
小智 30
如果您只需要Cognito UserPools组,则Authenticated User是其成员,而不是进行单独的API调用,该数据将在您进行身份验证时收到的idToken.jwtToken中进行编码.
这对于angular/react/etc中的客户端呈现/访问决策很有用.应用.
请参阅此示例中的"cognito:groups"数组声明已解码的idToken.jwtToken:
{
"sub": "a18626f5-a011-454a-b4c2-6969b3155c24",
"cognito:groups": [
"uw-app-administrator",
"uw-app-user"
],
"email_verified": true,
"iss": "https://cognito-idp.<region>.amazonaws.com/<user-pool-id>",
"cognito:username": "<my-user-name>",
"given_name": "<my-first-name>",
"aud": "<audience-code>",
"token_use": "id",
"auth_time": 1493918449,
"nickname": "Bubbles",
"exp": 1493922049,
"iat": 1493918449,
"email": "<my-email>"
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
jsp*_*aks 11
我最初期望Cognito JavaScript API提供一个简单的属性或方法来返回组列表,但我得出的结论是它被隐藏在一个令牌中,因此必须了解jwt.一旦建立了Cognito用户并检索了会话,就可以在IdToken中使用组数组.
var jwtDecode = require('jwt-decode');
var AmazonCognitoIdentity = require('amazon-cognito-identity-js');
var CognitoUserPool = AmazonCognitoIdentity.CognitoUserPool;
var CognitoUser = AmazonCognitoIdentity.CognitoUser;
var userPool = new CognitoUserPool({UserPoolId:'', ClientId:''");
...
app.get('/app', function(req, res){
var cognitoUser = userPool.getCurrentUser();
if(cognitoUser != null){
cognitoUser.getSession(function(err, session) {
if (err) {
console.error(err);
return;
}
console.log('session validity: ' + session.isValid());
var sessionIdInfo = jwtDecode(session.getIdToken().jwtToken);
console.log(sessionIdInfo['cognito:groups']);
});
}
});
Run Code Online (Sandbox Code Playgroud)
小智 8
如果您使用 Amplify,如果您使用currentAuthenticatedUser方法,您可以使用以下方法从响应中获取组:
response.signInUserSession.idToken.payload['cognito:groups']
Run Code Online (Sandbox Code Playgroud)
或者使用currentSession方法,您可以使用以下任一方法:
response.accessToken.payload['cognito:groups']
Run Code Online (Sandbox Code Playgroud)
或者
response.idToken.payload['cognito:groups']
Run Code Online (Sandbox Code Playgroud)
此API确实存在 - AdminListGroupsForUser.顾名思义,您没有看到它的原因是API目前仅在管理员基础上可用.Cognito在移动SDK中不包含管理API.它将包含在AWS SDK /服务器端SDK中,但值得注意的是,此API确实需要开发人员凭据,所有管理API也是如此.
| 归档时间: |
|
| 查看次数: |
11692 次 |
| 最近记录: |