我能够通过amazon-cognito-identity-js和aws-sdk注册和验证用户,实现它的过程非常简单明了。现在我在node.js中构建的API很少,我如何使用Cognito策略(即权限)授权这些API,并将它们包装在我已经能够获得idToken、accessToken和refreshToken的登录用户周围。
我在阅读文档和观看视频教程时遇到的其他东西是aws-lambda和aws-api-gateway。据我所知,aws-lambda是一种定义方法的方法,可以与非sql数据库(即AWS dynamo)和api-gateways进行通信,以访问那些lambda函数并与数据库交互,所有这些都是无服务器的。
我的问题是,如果我有自己的用Node.js编写的API,我需要将Cognito用户池与其集成,并使用AWS Cognito策略、用户组和角色来保护这些资源,这是可能的吗?请在这方面给我指点。
发布于 2018-05-02 14:31:38
您也可以使用授权用户授权您的node.js API时获得的相同身份验证令牌。这可以用很多方法来完成。其中一种方法是在每个构造函数中调用isAuthenticated()方法,该方法将检查是否存在有效的令牌。
export interface LoggedInCallBack{
isLoggedIn(message:string, loggedIn:boolean):void;
}
isAuthenticated(callBack : LoggedInCallBack){
if(callBack==null){
throw("User login service call cannot be null");
}
console.log("Is authneticated");
var cognitoUser = this.cognitoUtil.getCurrentUser();
console.log("Is cognito user empty? " + cognitoUser);
if(cognitoUser!=null){
cognitoUser.getSession(function (err, session){
if(err){
console.log("Couldn't get session:" + err);
callBack.isLoggedIn(err, false);
}
else{
console.log("Session is: " +session);
callBack.isLoggedIn(err, true);
}
})
}
else{
callBack.isLoggedIn("Cannot retrieve the current user", false);
}
}https://stackoverflow.com/questions/50045308
复制相似问题