最近紧急上线了一个angularjs+nodejs小项目,里面临时有个登录的模块,由于用户量不大,而且安全性要求也不高,所以只要实现无登录状态下,直接访问登陆后页面连接有个拦截就可以了,用到两种最简单的方法实现
1. 前端解决,angularjs端解决登录,相当于cookie,可以用h5的localStorage,但是localStorage不支持时间设置,实现如下:
var setCookie = function (key, value, hours) {
var localStorage = window.localStorage;
if (!value) {
localStorage.removeItem(key)
} else {
var exp = new Date();
localStorage[key] = JSON.stringify({
value,
expires: exp.getTime() + hours * 60 * 60 * 1000
})
}
}
var getCookie = function (name) {
var localStorage = window.localStorage;
try {
let o = JSON.parse(localStorage[name])
if (!o || o.expires < Date.now()) {
return null
} else {
return o.value
}
} catch (e) {
console.log(e)
return localStorage[name]
}
}
2. node端解决的话,用到node的express-session插件