使用 JS 实现 cookie 以识别回访者
Implementing cookies with JS to recognize returning visitors
我有一个内容锁定的博客。用户需要在表单中输入其电子邮件地址才能查看完整内容。
现在的问题是同一个用户必须在每个帖子上输入他们的电子邮件。如何实施 Cookie,以便:
1)在表单提交时,用户会得到一个cookie2)在博客页面加载时,检查cookie是否存在,如果存在,则加载完整内容
--
我使用饼干的经验很少。谢谢!
在前端创建 JS cookie 很简单:
document.cookie="email=foo@bar.com";
它会创建一个名为"电子邮件"的 cookie,其内容为"foo@bar.com"。
当用户再次访问您的网站时,您可以检查 Cookie 是否存在。
if (document.cookie.indexOf("email")>=0) {
// Log them in!
}
else {
// Show log-in field!
}
您可能还希望 Cookie 在一段时间后过期。创建 Cookie 时,您可以设置到期日期:
document.cookie="email=foo@bar.com;expire=06/12/2015";
但是,这不如使用服务器方 cookie 安全。
客户端上的 Cookie 不会为您提供您所寻求的保护,因为任何拥有浏览器的人都可以自己插入这些 Cookie。此外 - 服务器端内容(文章)的客户端安全性本质上不起作用。任何聪明的用户都可以克服不在服务器上的任何形式的安全措施。
也就是说,如果您对不安装特定扩展或运行特定脚本来"解锁"您的网站的用户完全没问题 - 您可以执行以下操作:
if(document.cookie.indexOf("entered_email=true") === -1){
// show email request field
} else {
// show content
}
当用户输入其电子邮件时:
document.cookie += (document.cookie ? ";" : "") + "entered_email=true";
您可能可以使用 localStorage
对象来实现此目的:
HTML:
<input type="text" id="email"/>
<input type="button" id="submit" value="submit"/>
JS:
$(document).ready(function(){
if (localStorage.getItem("email")){
$("#email").val(localStorage.getItem("email"))
// unlockContent();
// otherStuff();
}
$("#submit").click(function(){
localStorage.setItem("email", $("#email").val());
alert("Saved: " + localStorage.getItem("email"));
// unlockContent();
// otherStuff();
})
})
小提琴:这里。
编辑:但正如本杰明在他的回答中提到的,这不是一个真正的安全机制 - 除非你只是想验证电子邮件而不是特定的电子邮件。
相关文章:
- 无法识别从php创建的Js函数
- 确定(识别)dc.js图表类型
- node.js可以识别字符模式,但不能识别数字模式
- Angular JS/Rube-on-Rails-控制器未识别错误
- 角度.js - 识别通过路由或 ng 控制器调用的控制器
- 快速.JS无法识别所需的js文件的功能
- ZF:js 被识别,但在操作视图中不起作用
- HTML 无法识别我要求它运行的 javascript 文件,语法错误:意外的令牌“<”(匿名函数)script.js:
- 如何使用HTML5和JS捕获和识别用户签名
- Node.js/Expss.js.如果与通配符路由器一起使用,则无法识别静态路由器
- Meteor.js中的模板语法无法识别
- '<'在服务器端node.js中使用reactJS时无法识别
- CKEditor如何与React.js一起使用,以允许React识别它
- 要求无法识别 JS 路径
- 如何识别 js 是否是闭包编译的
- 如何识别JS代码中按键的输入
- 识别JS脚本何时作为Worker运行
- 输出所有字符并识别js函数的结束
- Xcode 4不为项目文件保存语法高亮显示?(并且不自动识别JS文件?!)
- 如何使用PhpStorm IDE在CakePHP项目中正确识别js代码