我已经为客户端创建了角度为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>
这不是解释意味着要问我怀疑.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。