我正在设置一个网站,其目的本质上是一个目标网页。当用户填写正确的表单时,此页面将创建一个cookie。处理我正在使用的this jquery plugin.
的Cookie我的问题是,我有一个单独的网站,只有在用户拥有第一个网站(目标网页)的Cookie时才能查看该网站。到目前为止,在我的测试中,我遇到了麻烦,因为我在登录页面设置的cookie没有出现在其他网站上。 着陆页正在localhost上进行测试,但要求用户在查看之前获取Cookie的网站已在互联网上发布。
以下是我设置cookie的方法:
$('#submit')[0].addEventListener("click", $.cookie("test-cookie", "test-value"));
然后,在另一个网站上我有这样的东西来检查cookie:
var cookie = $.cookie("test-cookie");
if (cookie != null && cookie != "") {
console.log("TRUE");
} else {
window.location = "http://www.thelandingpagesite.com";
}
现在,我不确定问题是否与cookie有关(我不知道它们是否可以在网站之间轻松转移,据我所知,它们存在于用户计算机上),或者如果我只是把它弄错了。任何帮助将不胜感激!感谢。
答案 0 :(得分:1)
Cookie由用户的浏览器存储,但它们存储时会引用设置它们的网站。
网站A无法为网站B设置Cookie。
Cookie用于(除其他外)商店首选项。允许任意站点为任何其他任意站点设置用户的首选项会引发故意破坏。
答案 1 :(得分:1)
据我所知,一个网站(www.example.com)无法从浏览器检索其他网站的网址(www.Second-example.com)。
如果这是允许的话,这将是一个重大的安全漏洞,因为有人可以很容易地窃取您的cookie并访问您的帐户和个人信息。
我担心你将不得不使用除cookie之外的其他机制。
您可以按照建议在另一个答案的评论中存储他们的IP。请注意,Lan上的任何人都可以访问该页面...例如,如果学校的学生填写了您的表格......整个学校都可以访问您试图限制的页面。
答案 2 :(得分:0)
对您的问题进行身份验证似乎不是问题,您只需要用户访问站点A,然后才能访问站点B.
这个问题可能有些用处: Cross domain iframe content load detection
在网站B 上,您可以让指向网站A 上的网页的iframe依次加载指向网站B上的网页的iframe 。如果指向网站A 的Iframe没有Cookie,则可以将该信息传递给网站B的iframe (通过加载不同的页面),当然后,加载可以调用parent.parent.cookieNotSet()
(或您决定调用该函数的任何内容),以便站点B 重定向到站点A 。
我希望这是有道理的。这是一个很大的解决方法,但需要解决跨域问题。所有这些显然都需要在浏览器上启用JavaScript,但现在哪个浏览器没有启用JavaScript?
答案 3 :(得分:0)
为特定域或子域集设置Cookie。它们可以在多个子域中读取,因此可以为域名“.domain.com”设置一个cookie,该cookie将与“www.domain.com”,“landingpage.domain.com”的所有请求一起发送,等
如果你最终拥有了你的目标网页,那么他们将被发送到相同的根域,这是可能的。