如何解决用户非活动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++
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。