小编Ron*_*537的帖子

使用分离的客户端和服务器进

我已经为客户端创建了角度为2的Web应用程序,并为服务器端创建NodeJSexpress框架.

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

我想整合ADFS身份验证.要实现身份验证,我正在使用passport-saml包.我的服务器端有一个中间件API,需要用户进行身份验证.

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

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

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

authentication client-server node.js passport.js angular

8
推荐指数
1
解决办法
737
查看次数

猫鼬条件必填字段验证

根据猫鼬内置验证器文档,我可以使用条件必填字段:

const schema = mongoose.Schema({
    a: {
        type: String,
        required: function () {
            return this.b === 1
        }
    },
    b: {
        type: Number,
        required: true
    }
});
Run Code Online (Sandbox Code Playgroud)

在此模式中,a仅当 propertyb等于时才需要该属性1

尝试创建新文档按预期工作:

Model.create({ b: 1 }); // throws ValidationError (property a is required)
Run Code Online (Sandbox Code Playgroud)

Model.create({ b: 2 }); // creates document
Run Code Online (Sandbox Code Playgroud)

我的问题是尝试更新现有文档并将属性设置b1因此a应该需要属性。

运行以下代码:

Model.findByIdAndUpdate(model._id, { b: 1 }, { new: true, runValidators: true});
Run Code Online (Sandbox Code Playgroud)

意外更新文档而不会抛出a需要属性的错误。

我的猜测是验证仅针对更新的属性(property b …

mongoose mongodb node.js mongoose-schema

6
推荐指数
1
解决办法
2401
查看次数