首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义aws的授权与node.js权限规则

自定义aws的授权与node.js权限规则
EN

Stack Overflow用户
提问于 2018-04-26 22:15:37
回答 1查看 656关注 0票数 1

我能够通过amazon-cognito-identity-jsaws-sdk注册和验证用户,实现它的过程非常简单明了。现在我在node.js中构建的API很少,我如何使用Cognito策略(即权限)授权这些API,并将它们包装在我已经能够获得idTokenaccessTokenrefreshToken的登录用户周围。

我在阅读文档和观看视频教程时遇到的其他东西是aws-lambdaaws-api-gateway。据我所知,aws-lambda是一种定义方法的方法,可以与非sql数据库(即AWS dynamo)和api-gateways进行通信,以访问那些lambda函数并与数据库交互,所有这些都是无服务器的。

我的问题是,如果我有自己的用Node.js编写的API,我需要将Cognito用户池与其集成,并使用AWS Cognito策略、用户组和角色来保护这些资源,这是可能的吗?请在这方面给我指点。

EN

回答 1

Stack Overflow用户

发布于 2018-05-02 14:31:38

您也可以使用授权用户授权您的node.js API时获得的相同身份验证令牌。这可以用很多方法来完成。其中一种方法是在每个构造函数中调用isAuthenticated()方法,该方法将检查是否存在有效的令牌。

代码语言:javascript
复制
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);
   }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50045308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档