我已经为客户端创建了角度为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>
这不是解释意味着要问我怀疑.