如何为每个用户生成唯一密钥



我制作了一个jquery弹出框,使用接受按钮向用户显示一些信息。当用户进入我的网站时,用户将看到该弹出框。

此时,我使用用户 ID 将wait保存在数据库表的'answer'列中。

如果用户单击接受按钮,我会在该用户 ID 的'answer'列中从wait更新为yes,并且今天不显示该用户的弹出框。

如果用户未单击接受按钮并重新加载页面,请再次显示弹出框,因为该用户 ID 的wait状态未更改,并且用户无法执行任何操作。

我已经完成了那部分,一切都很好。

现在我想使用来自另一个网站的弹出窗口。

假设我已经在a.com中创建了弹出框,并且我还想从b.com或任何其他网站使用该弹出过程。

因此,我创建了一个脚本,可以从任何其他网站访问a.com弹出窗口,如下所示,

<script src="/js/jquery-1.11.3.min.js"></script>
<script src="/js/jquery.ui/jquery-ui-1.11.4.js"></script>
<link href="/css/jquery-ui-1.11.4.css" rel="stylesheet" />
<script>
$(document).ready(function(){
    var div = document.createElement("div");
    div.setAttribute("class","popup");
    document.body.appendChild(div);
    var id =  '1234';//I need to assign different value for each user
    var stype = "static";
    $(".popup").load("http://a.com/popup/popup_proce.php,{unique_id:id,script_type:stype}");
});
</script>

此脚本可以显示弹出过程。但是,问题是,如果用户单击接受按钮,我需要检查用户是否已经单击接受按钮。

因此,我需要知道每个用户的唯一 ID 才能将该记录保存到数据库中。

而且,如果用户已经看到弹出窗口并单击今天的接受按钮,我不想在今天为用户显示弹出窗口。

主要问题是我需要在上述脚本中为每个用户生成 cookie 作为 id,因为我需要检查该用户是否已经接受弹出窗口,并且需要保存该用户数据。

如果我对 id 使用随机值,我无法检查用户是否已经接受(仍然wait状态(。因为当我重新加载(刷新(页面时,随机 id 被更改并另存为新 id。

因此,我无法检查先前id的wait状态,并且在刷新页面时始终将其另存为新id。这就是我的问题。

所以,我认为,我需要为每个用户 ID 创建 cookie 而不是随机值。

当我尝试使用这样的饼干时,

document.cookie = "unique_id=123456";
var id = document.cookie;

我无法访问来自a.com的 cookie 结果。我想我错了。我在跨域 cookie 方面没有太多经验。

我非常感谢任何建议。

至少您可以尝试以下代码来生成自定义 UUID:

function getNewID()
{
    var d = new Date().getTime();
    if (window.performance && typeof window.performance.now === "function")
    {
        d += performance.now();
        ; // use high-precision timer if available
    }
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c)
    {
        var r = (d + Math.random() * 16) % 16 | 0;
        d = Math.floor(d / 16);
        return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
    });
    return uuid;
}

相关内容

  • 没有找到相关文章