大家好,欢迎来到IT知识分享网。
场景:
1、登录完成关闭标签页,打开新的标签页,免登录;
2、登录完成,关闭浏览器,再打开浏览器,免登录(下次自动登录);
一般使用浏览器cookie作为保存数据的载体。
在登录成功时,保存相关数据:
1、页面登录HTML
UserName:
Password
Login
2、Login登录按钮及注销相关JS处理
$(“#login”).on(‘click’, login);
const LOGIN_TIME = 7*24*60*60*1000; // 1个星期
function login(){
var name = $(“#userName”).val();
var password = $(“#password”).val();
// 此处应校验
// 此处是下次自动登录的关键(增加expires)
var date = new Date();
// 可下次登录时间长度,单位毫米,此处为1个星期
date.setTime(date.getTime() + LOGIN_TIME);
// ajax请求成功,需要cookie存储,数据应加密
var sid = data.sessionId; // 这是登录成功返回的认证标志
document.cookie = “USERNAME=” + Base64.encode(name) + “;path=/;expires=”+date.toGMTString();
document.cookie = “SID=” + Base64.encode(sid) + “;path=/;expires=”+date.toGMTString();
// 跳到主页面
}
// 注销/退出登录状态,需要清除cookie
function logout(){
var date = new Date();
date.setTime(date.getTime() – 60*60*1000);
document.cookie = “USERNAME;path=/;expires=”+date.toGMTString();
document.cookie = “SID=;path=/;expires=”+date.toGMTString();
// 跳到登录页
}
3、校验是否是自动登录
function initData(){
if(!getCookie(“USERNAME”) || !getCookie(“SID”)){
// 跳到登录页
}else{
// 跳到主页面
}
}
function getCookie(cookieName){
cookieName += “=”;
var cookieList = document.cookie.split(“;”);
for(var i= 0; i< cookieList.length; i++){
var cookieItem = cookieList[i].trim();
if(cookieItem.indexOf(cookieName) != -1){
return cookieItem.substring(cookieName.length, cookieItem.length);
}
}
return ”;
}
initData();
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22676.html