快递 – 不同港口的本地护照授权

前端之家收集整理的这篇文章主要介绍了快递 – 不同港口的本地护照授权前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个在端口5000上运行的node.js应用程序,我使用passport.js作为授权.我通过帖子请求授权用户,我使用自定义回调:
this.router.post('/member/login',(req,res,next) => {
      passport.authenticate('local',(err,member,info) => {
        if (err) res.json(400).json({message: "An error ocurred"});
        if (!member) {
          console.log("No member found!");
          return res.status(409).json({message: "No member found!"})
        }
        req.logIn(member,(err) => {
          if (err) {
            console.log(err);
            return res.status(400).json({message: "An error ocurred"});
          }
          return res.json(member);
        });
      })(req,next);
    });

这工作正常,但是当我开发本地时,我有一个前端Angular2应用程序,它运行在不同的端口(4200),所以在我的开发中我不可能得到授权用户:req.user是未定义的.我使用快速会话来存储授权用户.

当我部署时,我将两个应用程序捆绑在一起,所以一切正常.

有没有人为这个问题找到一个好的和简单的解决方案?再次,它只是在开发中我有这个问题.

例如,您可以隐藏代理,Nginx背后的两个服务.您的服务都将使用1个地址.

Nginx配置示例

server {
  listen 80;

  server_name example.com;

  proxy_set_header Host $http_host;
  proxy_pass_header Server;
  proxy_set_header X-Forwarded-For $remote_addr;
  proxy_set_header X-Forwarded-Proto $scheme;

  location / {
    proxy_pass http://frontend_address:port;
    proxy_redirect default;
  }

  location ~ /api {
    proxy_pass http://backend_address:port;
    proxy_redirect default;
  }
}

因此,所有请求http://example.com将转到前端服务,并且所有请求http://example.com/api/都将转到后端服务.

原文链接:https://www.f2er.com/angularjs/141774.html

猜你在找的Angularjs相关文章