用户非活动Node.js时自动注销

问题描述

用户不活动时,我无法自动注销。 我有一个注销按钮和一个重定向首页“ /”

app.js

app.get('/logout',userContro.user_logout);

userController.js

user_logout = function(req,res){
   res.clearCookie("userId"); //clear cookie
   res.redirect('/'); 
};

我需要做的是在用户闲置5分钟后重定向到主页。 我可以尝试在用户setInterval进行计数器计数时使用logIn,如果超时则返回true,但是我不知道如何添加函数重定向首页

我找到了Session auto logout after inactivity,但它仍然对我不起作用。

谢谢大家!

解决方法

在这种情况下,使用npm的会话库即可。

使用以下命令进行安装。

ISNULL(ISNULL(@firstvalue,@secondvalue),1)

然后,按要求进行操作,并按如下所述在app.js中使用

//Follow this instruction
File
<input
type="file"
ref="image2"
v-on:change="handleFilesUpload()"
/>
In methods properties 
handleFilesUpload() {
      let uploadedFiles = this.$refs.image2.files;
      let fileExtension = uploadedFiles[0].name.replace(/^.*\./,"");
      //console.log("fileExtension",fileExtension);

      let allowedExtensions = /(\.jpg|\.JPG|\.jpeg|\.JPEG|\.png|\.PNG|\.pdf|\.PDF|\.doc|\.docx)$/i;
      if (!allowedExtensions.exec(uploadedFiles[0].name)) {
       var message = "You can upload jpg,jpeg,png,pdf and docx file only";     
        this.$refs.image2.value = "";
        this.documentFiles = [];
      } else {
        //console.log("uploadedFiles[i] = ",uploadedFiles[0]);     
        //Upload for single file        
        this.documentFiles = uploadedFiles;
        //Upload for multiple file
        /*
        for (var i = 0; i < uploadedFiles.length; i++) {
          this.documentFiles.push(uploadedFiles[i]);
        }
        */
      }
    },// After submit form
validateBeforeSubmit(e) {
      let formData = new FormData();  
      for (var i = 0; i < this.documentFiles.length; i++) {
        let file = this.documentFiles[i];
        formData.append("files[" + i + "]",file);
      } 
      axios.post('laravel-api-url',formData)
      .then(res => {
              console.log({res});
          }).catch(err => {
          console.error({err});
        });
    },--In Laravel controller function--
public function save($request){
        $total = @count($_FILES['files']['name']);
            if ($total>0)
            {
                $allFiles = $this->uploadFiles($request);
                $data['document_file_name'] = ($allFiles) ? $allFiles[0] : 
                $result = CreditMaster::create($data);
                if ($result) {
                    return response()->json(array('status' => 1,'message' => 'Data saved successfully!'));
                } else {
                    return response()->json(array('status' => 0,'message' => 'Save failed!'));
                }
            }
}
public function uploadFiles($request)
    {
        $storeFileName = [];
        $total = @count($_FILES['files']['name']);
        $diretory = '/save_directory_name/';
        $path = public_path() . $diretory;
        $fileForMate = time() . '_';
        for ($i = 0; $i < $total; $i++) {
            $tmpFilePath = $_FILES['files']['tmp_name'][$i];
            if ($tmpFilePath != "") {
                $fileName = $fileForMate . $_FILES['files']['name'][$i];
                $newFilePath = $path . $fileName;
                if (move_uploaded_file($tmpFilePath,$newFilePath)) {
                    array_push($storeFileName,$diretory.$fileName);
                }
                else
                {
                    return $_FILES["files"]["error"];
                }
            }
        }
        return $storeFileName;
    }

在这里,maxAge是一个属性,当在指定时间内没有用户的请求时,该属性会自动会话。

,

我已经处理了文件js fontend:

setInterval(check_Mouse,1000); //check every second
var x=0;
var cnt=0;
function myFunction(e) {
    cnt=0;      //onmousemove
}
function check_Mouse(){
if(cnt==120){   //number second to logout
    cnt=0;
    window.location.href="/";   //go to homepage
}else{
    cnt+=1;   //if not timeout,cnt++
}
}