[英]Ajax call to passport does not run the authenticate middleware
这是请求身份验证的客户端代码
$("form#login-form").on("click", "#submit", function (e) {
e.preventDefault();
$.ajax({
url: "/login",
type: "POST",
data: JSON.stringify({ email: $("#email").val(), password: $("#password").val() }),
contentType: "application/json; charset=utf-8",
dataType: "json",
}).done(function (response, textStatus, jqXHR) {
utils.clearErrors();
location.reload();
}).fail(function (jqXHR, textStatus, errorThrown) {
// handle the error
utils.handleError(jqXHR, textStatus, errorThrown);
})
});
以下是用于护照认证的节点API
app.post('/login', passport.authenticate('local-login'), (req, res, next) => {
return res.json({ user: req.user });
});
如果进行ajax调用,Passport.authenticate函数不会调用中间件函数,但是如果页面是使用表单提交的,则它可以正常工作。
您调用的用于身份验证的功能是
passport.authenticate('local');
它也取决于您包含的模块。 请在https://github.com/rupalipemare/Mongoose-Demo上检查此处的代码,其中有完整的示例说明护照认证。 希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.