正在尝试创建JavaScript用户ID和会话ID。不知道我是否对此具有有效的代码

问题描述 投票:0回答:1

我正在尝试为我的网站创建我自己的分析脚本,为此,我试图组合一种创建userID和sessionID的方法。

但是我不确定我是否正确地完成了。

我正在尝试:-检查用户是否设置了用户ID(如果没有设置)。设置它。-检查用户是否有一个sessionID,它没有设置。-将userID设置为跟随该用户,该用户在多次访问中继续保持该userID,其中sessionID对于每次访问都是唯一的。

if( getCookie('yb_uid') != null) {
    if( getCookie('yb_sid') != null )  {
        setCookie('yb_uid', getCookie('yb_uid'), 730);
        setSessionCookie(getCookie('yb_sid'));
    } else {
        setCookie('yb_uid', getCookie('yb_uid'), 730);
        setSessionCookie(setSID());
    }
} else {
    setCookie('yb_uid', setUID(),730);
    setSessionCookie(setSID());
}
if( getCookie('yb_sid') == null || getCookie('yb_sid') == 'undefined' || !getCookie('yb_sid') )
    {
        setSessionCookie(setSID());
    }

function setUID()
    {
        return "ybID#"+_setID(5)+"-"+_setID(5)+"-"+Date.now();
    }
function setSessionCookie(value)
{
    var now = new Date();
    var minutes = 30;   now.setTime(now.getTime() + (minutes * 60 * 1000));
    document.cookie = "yb_sid=" + value + "; max-age="+now.toUTCString()+"; expires="+now.toUTCString()+"; path=/";
} /*set session cookie*/
function getCookie(name)
{
    var re = new RegExp(name + "=([^;]+)");
    var value = re.exec(document.cookie);
    return (value != null) ? unescape(value[1]) : null;
} /* get cookie value */
function _setID(length){
    var result = '';
    var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    var charactersLength = characters.length;
    for(var i = 0; i < length; i++ ) {  
        result += characters.charAt(Math.floor(Math.random() * charactersLength));
    } 
    return result;
}
function setSID(){
    var ts = Math.round(+new Date()+Math.random()/1000);
    return ts;
}
function setCookie(name, value, days){
    if (days){
        var date = new Date();
        date.setTime(date.getTime()+days*24*60*60*1000);
        var expires = "; max-age="+date.toGMTString()+" expires=" + date.toGMTString();
    } else {
        var expires = "";
    }
    document.cookie = name+"=" + value+expires + ";path=/";
}

也许这有一种更简单的脚本编写方法?

javascript session analytics userid
1个回答
0
投票

您是否尝试过使用UUID https://www.npmjs.com/package/uuid生成用户ID?

© www.soinside.com 2019 - 2024. All rights reserved.