码迷,mamicode.com
首页 > Web开发 > 详细

网站登录 个人信息存储 方案

时间:2017-04-07 14:14:18      阅读:369      评论:0      收藏:0      [点我收藏+]

标签:type   color   pat   设置   use   date   dex   code   new   

前情记录:

这是关于前一段时间工作中网站的登陆信息的小总结,以前也没有想到要写这个随笔,是因为一个同事的一句话给了我很大的感触,所以就决定要总结一下。

去年半年时间再做一个后台管理程序(ERP)网站的登陆、权限等方面我负责,实现了登陆、权限、缓存丢失但不超时自动重新登录、异地登陆登出等功能,还做了一个微信、一个官网的全部内容(这里主要谈登陆、个人信息的存储)。

但是自己没有意识到自己用的什么方式,在和同事聊模式的时候他说:erp中就是缓存+数据库的方式实现的。正所谓一举惊醒梦中人,听君一席话胜读十年书,和别人交流(说与听)真的能提升自己的认知。

一:简单网站的个人信息储存方案:

技术分享

采用cookie+sesion的方式判断登陆状态+个人信息,登录时存储两者,并赋给相同过期时间,不排除session丢失的情况。

1:cookie中存储简单信息用于页面效果内容展示、判断登陆状态。

     js 获取到cookie内容个人的基本信息和是否登陆,决定是否可以进入某些页面、某些关键操作。

    cookie失效或者丢失则重新登录。

2:session用于后台判定登陆状态session["userflag"] 登陆者["userid"] 

实际的操作回去判断session的信息有效性,判断session失效后同时将cookie做过期处理,实现登陆状态控制,并处理了session丢失的问题。

总结:简答的前后台的两种标示判断登陆状态及信息。

代码:

技术分享
function CookieHelper() {

}
//删除cookie
CookieHelper.prototype.deleteCookie = function (name) {
    var date = new Date();
    date.setTime(date.getTime() - 10000);
    document.cookie = name + "=v; expires=" + date.toGMTString() + ";path=/";
}



//设置cookie
CookieHelper.prototype.setCookie = function (name, value) {
    //设置之前先删除
    this.deleteCookie(name);
    //获取当前时间 
    var date = new Date();
    var expiresDays = 10;
    //将date设置为10天以后的时间 
    date.setTime(date.getTime() + expiresDays * 24 * 3600 * 1000);
    //cookie设置为10天后过期 
    document.cookie = name + "=" + value + "; expires=" + date.toGMTString() + ";path=/";
    document.cookie
}

//获取某一cookie key=value
CookieHelper.prototype.getCookie = function (name) {
    var strCookie = document.cookie;
    var arrCookie = strCookie.split("; ");
    for (var i = 0; i < arrCookie.length; i++) {
        var arr = arrCookie[i].split("=");
        if (arr[0] == name) {
            return arr[1];
        }
    }
    return "";
}
//获取cookie 类型 key=id=123&name=qwe&pwd=uio
CookieHelper.prototype.getCookies = function (name) {
    var strCookie = document.cookie;
    var arrCookie = strCookie.split("; ");
    for (var i = 0; i < arrCookie.length; i++) {
        var arr = arrCookie[i].split("=");
        if (arr[0] == name) {
        return arrCookie[i].substring(arrCookie[i].indexOf("=") + 1)
        }
    }
    return "";
}
//获取所有cookie

CookieHelper.prototype.getAllCookie = function (name) {
    var strCookie = document.cookie;
    var arrCookie = strCookie.split("; ");
    if (arrcookie.length > 0) {
        return arrCookie;
    } else {
        return "";
    }
}
CookieHelper

 

网站登录 个人信息存储 方案

标签:type   color   pat   设置   use   date   dex   code   new   

原文地址:http://www.cnblogs.com/zhaokunbokeyuan256/p/6677844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!