微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS Serverless:令牌认证

如何解决AWS Serverless:令牌认证

我正在开发一个项目,该项目使用NodeJS编码的aws lambda作为后端。它在AWS中以无服务器模式托管。我使用cognito作为身份验证API,可以从中成功获取令牌。为了保护后端(NodeJS),我添加了以下代码以读取授权标头并使用cognito-express验证令牌。

  const authorisedRoute = express.Router();
  app.use(function (req,res,next) {
   res.header("Access-Control-Allow-Origin","*")
   res.header("Access-Control-Allow-Headers","Origin,X-Requested-With,Content-Type,Accept")
   res.header('Access-Control-Allow-Methods: GET,POST,PATCH,PUT,DELETE,OPTIONS');  
   if (req.method !== 'OPTIONS') {
    let accesstokenFromClient = req.headers['Authorization'];
    if (!accesstokenFromClient) return res.status(401).send("Access Token missing from header");

    cognitoExpress.validate(accesstokenFromClient,function (err,response) {
    if (err) return res.status(401).send(err);
    else next();   
    });

    } 
    });

预期的行为: 从“授权”标头中读取令牌,并使用cognito-express对其进行验证,然后将数据发送回客户端。如果未通过验证,则会得到:缺少身份验证令牌。

实际行为: 在本地运行lambda时,代码和此机制运行良好(放大调用函数...)。但是,当我将其部署到云中时,整个功能将停止工作,并且会收到“内部处理错误”作为响应。

云中不允许使用该方法吗?有没有更好的方法使用令牌身份验证来保护我的无服务器api? 感谢您阅读本:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。