node.js – 使用分离的客户端和服务器进行身份验证

我已经为客户端创建了角度为2的Web应用程序,为服务器端创建了带有快速框架的NodeJS.

对于客户端,我使用angular-cli生成项目,该项目在lite-server上运行,因此我的客户端和服务器在2个不同的服务上运行.

我想集成ADFS身份验证.
为了实现身份验证,我使用的是passport-saml包.
我的服务器端API中有一个中间件,需要用户进行身份验证.

直接到达服务器(没有客户端)时,身份验证过程正常.

但是,我无法通过@ angular / http访问API.
我尝试了一个来自服务器的简单GET请求(终端中间件),因此我得到了没有重定向的身份验证页面(我不认为这是核心问题,但实际的实现是).

在对服务器和客户端使用单独的服务时,如何正确实现身份验证?

解决方法

嗨我也面临同样的问题我的角度项目托管在4200端口.和我的节点在3000端口上.
当我们有两个端口运行时很难实施护照.

步骤1
通过对公用文件夹进行ng构建来使角度项目静态化.
确保angular-cli.json有*“outDir”:“.. / public”,*

第2步
现在我们可以使用相同的节点端口来访问角度根,请在节点app.js中添加以下代码

var path = require('path');
  // Set Static Folder
app.use(express.static(path.join(__dirname,'public')));
app.get('*',function(req,res) {
     res.sendFile(path.join(__dirname,'public/index.html'));
});

这将使您的角度项目可通过节点端口访问.

第3步:
现在我们可以在UI中添加护照登录按钮
并提供网址< a href =“/ passport / auth / twitter”> twitter< / a>

这不是解释意味着要问我怀疑.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...