微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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>

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐