我正在搜索很多并试图弄清楚如何使我的nodejs后端应用程序从Cognito用户池中获取用户列表。
我能够使用用户名/密码登录用户,但我找不到一个完整的例子,说明如何通过nodejs和调用listUsers方法将我的后端应用程序与Client Secret连接起来。(服务器到服务器认证)
这是我用于登录用户的代码:
const
AmazonCognitoIdentity = require('amazon-cognito-identity-js'),
CognitoUserPool = AmazonCognitoIdentity.CognitoUserPool,
AWS = require('aws-sdk'),
request = require('request'),
jwkToPem = require('jwk-to-pem'),
jwt = require('jsonwebtoken'),
debug = require('debug')('main.js');
global.fetch = require('node-fetch');
const
poolData = {
UserPoolId : process.env.POOL_USER_ID,
ClientId : process.env.POOL_CLIENT_ID
};
const pool_region = process.env.POOL_REGION;
const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
function Login(){
var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails({
Username : 'email@email.com,
Password : 'teste1234'
});
var userData = {
Username : 'email@email.com',
Pool : userPool
};
var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function(result){
console.log('access token + ' + result.getAccessToken().getJwtToken());
console.log('id token + ' + result.getIdToken().getJwtToken());
console.log('refresh token + ' + result.getRefreshToken().getToken());
},
onFailure: function(err){
console.log('onFailure', err);
}
});
}
现在我正在构建一个需要管理池的后端应用程序。
有人可以提供完整的nodejs javascript示例,了解如何使用客户端密钥(不是用户名/密码)和调用listUsers来使用Cognito进行服务器到服务器身份验证吗?(https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html)
AWS文档非常模糊且难以理解。谢谢。
发布于 2018-09-19 13:49:15
经过大量的尝试和错误后,这有效:
const
AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: 'IAM_AKI',
secretAccessKey: 'IAM_SAK'
});
const cognitoId = new AWS.CognitoIdentityServiceProvider({ apiVersion: '2016-04-19', region: 'us-east-1' });
var params = {
UserPoolId: process.env.POOL_USER_ID,
Limit: 20
};
cognitoId.listUsers(params, function(err, data){
if(err) console.log(err, err.stack);
else console.log(data);
});
发布于 2019-12-16 17:01:59
不走cognitoId.listUsers方法,是不是没有权限?
https://stackoverflow.com/questions/-100002691
复制相似问题