1.登录
①调用登录接口传入用户名和密码;
②服务器验证返回code成功则将sessionkey存入缓存,将用户名也存入缓存中。(如果有需要登录那时刻的时间,也可将那个时刻的时间存入缓存中);
③如果有忘记密码,找回密码操作,最好给接口中添加sessionkey验证(前台肯定做在一个页面中,通过控制显示隐藏实现,接口请求添加sessionkey会比不添加会安全点);
④当登录成功先存缓存再跳转,禁止先执行跳转再缓存(该情况会存在没有存完就跳转到下个页面,如果下个页面立马用到缓存内容,但缓存内容没有完成,就会出现请求参数缺失的情况);
2.退出
①将sessionkey清除;
②同时页面跳转为登录界面;
3.点击登录按钮执行登录操作,点击键盘enter键也执行登录操作
判断键盘键值为13执行js登录点击事件即可,例子:$("#login").triggle("click");
4.获取键值
(1)html部分
<form name="loginform" id="loginform">
<input type="text" name="user" id="user" value="" />
<input type="password" name="pas" id="pas" value="" />
<input type="button" id="login" value="登录" />
</form>
(2)js部分
//enter键执行
$("#loginform").keydown(function(e) {
var e = e || event,
keycode = e.which || e.keyCode;
if(keycode == 13) {
$("#login").trigger("click");
}
});
//点击登录按钮执行
$("#login").click(function(){
//登录操作
});
5.在登录时,会存在用户在一个浏览器上同时登录两个(前台/后台)账号的情况,这时就会存在后边(第二个账号/第二次登录的账号)登陆的sessionkey会覆盖前边登录(第一个账号/第一个登录的账号)的sessionkey,如果登完第二个账号再返回第一个账号的界面进行增删改查,接口的请求参数sessionkey都是缓存中第二个账号的sessionkey,就会出现混乱的情况;
(1)首先在登录那里做两套样式,一个 输入账号密码的样式(正常登录的样式),再做一个 切换账号的样式;
(2)同时再每个页面放一个隐藏的div在里边放入首次进入该页面sessionkey的缓存值;
(3)在每次进入登录首页时,从缓存中取出sessionkey和Userinfo,如果sessionkey和Userinfo存在则显示 “切换账号的样式”:
①如果用户点击直接登录,则直接跳转登录完成进入的那个页面;(此时就越过登录输密码获取sessionkey的流程,因为缓存中已存在sessionkey,说白了账号密码请求接口其实就是获取sessionkey,既然缓存中都有了,那就没必要走该流程了哈)
②如果用户点击切换账号,则清除缓存中的sessionkey和Userinfo,同时展示 “输入账号密码的样式(正常登录的样式)”,用户正常登录,走正常登录流程;
(4)在从登录页面进入正常操作页面之后,每次进行增删改查等操作都要请求接口数据,请求之前都必须把页面中隐藏的装载sessionkey值的那个div里的sessionkey获取并且和缓存中的sessionkey进行比较:
①如果这两个sessionkey值相同,则为同一个账户,请求接口执行操作命令;
②如果这两个sessionkey值 不 相同,则为 不同账户,页面跳转到登录首页且不执行接口请求命令。因为存在第二个账号 登录,所以缓存中必定存在sessionkey,所以登录页面必定展示 “切换账号的样式”,然后用户进行相应操作即可。
(5)通过该方法,保证缓存中的sessionkey只有一个,同时当前能执行增删改查等操作命令的用户也只有一个,就不会出现李代桃僵冒名顶替执行命令的情况了。
6.正常登录,和快捷切换账号登录样式(对5做一个简单说明补充)
7.sessionkey判断是否存在(对5做一个简单说明补充)
//判断是否有登录状态
if(!localStorage.Sessionkey&&!localStorage.Userinfo){
$(".q_special").css({"display":"none"});
$(".q_normal").css({"display":"block"});
}else{
$(".q_special").css({"display":"block"});
$(".q_normal").css({"display":"none"});
}
//快捷登录
$(".q_special_login").on("click",function() {
window.location.href = 'web/front/home/index.html';
});
//切换账号
$(".q_special_change").on("click",function() {
localStorage.removeItem("Sessionkey");
localStorage.removeItem("Userinfo");
$(".q_normal").css({"display":"block"});
});