快递 – 不同港口的本地护照授权
发布时间:2020-12-17 07:22:17 所属栏目:安全 来源:网络整理
导读:我有一个在端口5000上运行的node.js应用程序,我使用passport.js作为授权.我通过帖子请求授权用户,我使用自定义回调: this.router.post('/member/login',(req,res,next) = { passport.authenticate('local',(err,member,info) = { if (err) res.json(400).js
我有一个在端口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/都将转到后端服务. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |