将passport.js 与客户端javascript 一起使用?

时间:2021-05-19 06:06:45

标签: javascript node.js passport.js session-cookies

我正在使用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);
        });  

     });

0 个答案:

没有答案