我正在使用passport.js 通过我的快速应用程序管理用户登录。在服务器端,我使用一个名为“connect-ensure-login”的库作为中间件,其目的是重定向应该仅由登录用户访问的请求,如下所示:
router.post('/protected', ensureLoggedIn('/users/login'), function(req, res, next) {
...
这会将请求从“/protected”重定向到登录表单,以便未经身份验证的用户无法访问它。
现在,我正在创建一些用于创建 POST 请求的客户端 AJAX 代码。但是,请求响应是上面引用的登录页面,这意味着该请求无法访问来自passport.js 的会话信息。如何获取客户端代码以使用会话/cookie 信息?
这是客户端代码。有没有更好的办法?
let form = document.createElement("FORM");
form.id = "editPage";
/* text area */
let textArea = document.createElement("TEXTAREA");
textArea.id = "editText";
let taLabel = document.createTextNode("Edit Page");
textArea.appendChild(taLabel);
form.appendChild(textArea);
/* submit button */
let submitButton = document.createElement("BUTTON");
submitButton.id = "submitEdit";
let submitLabel = document.createTextNode("Submit");
submitButton.appendChild(submitLabel);
form.appendChild(submitButton);
body.appendChild(form)
submitButton.addEventListener("click", function(){
let edits = textArea.value;
axios.post(hosturl+'/protected','edit_text='+edits).then((response) => {
console.log(response);
});
});