入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

localStorage也可以限时保存登录信息

创建时间:2016-06-05 投稿人: 浏览次数:2957

localStorage用于持久化的存储;但是我想限时保存用户的登录信息,除了cookie和session,localStorage应该也可以做到;cookie字符长度有限制,不够6;session在后端保存;现在我要在前端保存用户信息,而不用每次后台判断或前端请求去判断;因为如果页面由前端输出,那么每次都得请求一次用户是否登录;

代码不多,大家都懂:

   1module.exports={ 2    age:0, 3    maxAge:function (age) { 4        this.age=age; 5        return this; 6    }, 7    set:function(name,json){ 8        localStorage.removeItem(name); 9        json.__time=new Date().getTime(); 10        json.__age=this.age; 11        localStorage.setItem(name,JSON.stringify(json)); 12        return this; 13    }, 14    getInfo:function(name){ 15        var info=localStorage.getItem(name); 16        return info?JSON.parse(info):null; 17    }, 18    isExpired:function(name) { 19        var logined=localStorage.getItem(name), 20            _time=0, 21            iTime=new Date().getTime(), 22            timeLength=0; 23        if (logined) { 24            logined=JSON.parse(logined); 25            _time=logined.__time; 26            timeLength=iTime-_time; 27            return timeLength>=logined.__age; 28        }else { 29            return true; 30        } 31    }, 32    isLogined:function(name,fn) { 33        var user="",age=this.age; 34        if (!this.isExpired(name)) { 35            user=JSON.parse(localStorage.getItem(name)); 36        }else{ 37            localStorage.removeItem(name); 38        } 39        if (user) { 40            fn&&fn(user); 41        }else { 42            fn&&fn(); 43        } 44    } 45};   

使用:

   1var store=require("./modules/store");   

前端在用户登录成功后保存基本信息:

   1store.maxAge(1000*60*60*24).set("userinfo",{ 2     name:"hf", 3     age:"18" 4 });   

以JSON格式保存用户的信息name和age,字段名userinfo,保存时长为一天;

下次用户访问判断用户信息是否过期:

   1store.isExpired("userinfo"); 2//返回true|false   

或者直接判断限定时间内是否登录了:

   1store.isLogined("userinfo",function(info){ 2         if (info) { 3             console.log(info) 4         }else { 5             console.log(false) 6         } 7     }); 8//若在限定时间内登录了,回调用户信息;若没有登录,回调里做其他操作   

获取登录信息,返回用户信息或null;也可以判断是否登录;

   1store.getInfo("userinfo"); 2//返回info或null
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像