有谁知道我可以在哪里阅读教程,或者知道如何创建一个内置警告的基于 Javascript 的会话超时,以及可选的这些功能:
- 用户活动重置计时器
- 与数据库交互(最后一次出现在等)
- 如果不活动,它将注销用户(通过重定向到 logout.php 页面)
- 在注销用户之前,它将显示一条弹出消息,询问他们是否要继续
不幸的是,我对 Javascript 不太了解。
有谁知道我可以在哪里阅读教程,或者知道如何创建一个内置警告的基于 Javascript 的会话超时,以及可选的这些功能:
不幸的是,我对 Javascript 不太了解。
我不知道您的网站是如何完成的,但如果做得正确,您应该有一个登录会话和某种后端控制系统,如果先前的操作是在 X 分钟/小时前进行的,则该系统会拒绝任何操作并自动过期用户。如果你想实现一些客户端代码,你应该有一个javascript计时器,当过期时间即将结束时提醒用户,你也可以在过期时间到达后将用户重定向到主页或登录页面。这样,所有安全功能都在后端,javascript 仅作为显示行为的显示措施。
更新:
setInterval(function(){alert("Hey, your session is ending")},360000);
setInterval(function(){
redirect();
},720000);
function redirect(){
document.location = "../logout.php"
}
更新2:
setInterval(function(){
logout();
},600000);
function logout(){
if(confirm('Logout?'))
redirect();
else
alert('OK! keeping you logged in')
}
function redirect(){
document.location = "../logout.php"
}
带有此代码的每个页面都会在 10 分钟后询问用户是否要注销。这意味着您的会话不能自行过期,您必须将控制权留给用户
5 分钟后会话注销
<script type="text/javascript">
var interval;
$(document).on('mousemove', function () {
clearInterval(interval);
var coutdown = 5 * 60, $timer = $('.timer'); // After 5 minutes session expired (mouse button click code)
$timer.text(coutdown);
interval = setInterval(function () {
$timer.text(--coutdown);
if (coutdown === 0) {
alert("Session expired. User successfully logged out.");
window.location = "UserLogin.php";
}
}, 1000);
}).mousemove();
var interval;
$(document).on('keydown', function () {
clearInterval(interval);
var coutdown =5 * 60, $timer = $('.timer'); // After 5 minutes session expired (keyboard button press code)
$timer.text(coutdown);
interval = setInterval(function () {
$timer.text(--coutdown);
if (coutdown === 0) {
alert("Session expired User successfully logout.");
window.location = "UserLogin.php";
}
}, 1000);
}).mousemove();
<script>
<html>
<div class="timer">
Time of session display on page
</div>
</html>