js清除所有网站token

JavaScript032

js清除所有网站token,第1张

本地存储对比:

sessionStorage,关闭窗口就被清除;

localStorage,一直存在直到手动删除;

cookie,设置有效期,可以直接实现标题的需求

今天不想多说话,直接贴上代码:

//判断是否支持 比如浏览器开启了隐私模式var isCookie = () = >{ return navigator.cookieEnabled}//存储function setCookie(cname, cvalue, exdays = 0) { cvalue = encodeURIComponent(JSON.stringify(cvalue)) if (exdays >0) {var d = new Date().getTime() + exdays * 24 * 3600 * 1000 + 8 * 3600 * 1000 var expires = "expires=" + new Date(d).toUTCString() document.cookie = cname + "=" + cvalue + "" + expires + "path=/" } else {document.cookie = cname + "=" + cvalue + "" + "path=/" }}//获取function getCookie(cname) { var name = cname + "=" var ca = document.cookie.split("") for (var i = 0i <ca.lengthi++) {var c = ca[i] while (c.charAt(0) == " ") { c = c.substring(1) }if (c.indexOf(name) == 0) { let d = c.substring(name.length, c.length) return JSON.parse(decodeURIComponent(d)) } } return ""}//获取 通过正则// function getCookie(name) {// var arr,// reg = new RegExp("(^| )" + name + "=([^]*)(|$)")// if ((arr = document.cookie.match(reg))) {// return JSON.parse(decodeURIComponent(arr[2]))// } else {// return null// }// }//删除function deleteCookie(name) { var date = new Date() date.setTime(date.getTime() - 1) var delValue = getCookie(name) if (delValue) {document.cookie = name + "=" + delValue + "expires=" + date.toGMTString() }}

使用示例:

//定义keyconst tk = "tk2020"const uk = "uk2020"//保存setCookie(tk, "14332239527007001", 0)setCookie(uk, { id: 1, name: "以气御码" }, 0)//获取let token = getCookie(tk)let user = getCookie(uk)console.log(token)console.log(user)

当使用setCookie时,传0或不传,表示关闭浏览器后就被清除,截图预览:

当登录的信息存储为这种形式,可以实现关闭浏览器,就清除登录信息。也可以再配合登录有效期,总不能“只要不关浏览器,就不退出登录了”。

文档:

MDN Cookie(https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie)W3c Cookie(https://www.w3school.com.cn/js/js_cookies.asp)菜鸟教程 Cookie(https://www.runoob.com/js/js-cookies.html)

1.在Struts中,如何实现防止表单的重复提交操作?

Struts的Token(令牌)机制能够很好的解决表单重复提交的问题,

基本原理是:

1) 服务器端在处理请求到达之前,会将 请求 中包含的令牌值与保存在当前 用户会话 中的令牌值进行比较,看是否匹配。

2) 在处理完该请求后,且在答复客户端之前,会产生一个新的令牌值,该令牌值除传给客户端以外,也会将 用户会话 中保存的旧的令牌值进行替换。

3) 这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌值就和服务器端的令牌值不一致,从而有效地防止了重复提交的发生。

2.Struts使用Token机制,来防止恶意的破坏和重复提交问题,也就是点击后退后在再提交,这是Struts无法发现的

3.在form中生成一个token码,在session中也保存有一个同样的token码,

当表单提交后,判断两个token码相等后,就会改变session中的这个token码,

当然在用回退后,form的token码是不会变的,在提交,还会判断两个token码是否相等,如果不等就会抛出异常,证明这是过时的垃圾数据。

作用:Token机制可以解决表单的重复提交;

产生token的两种方式: 

<1>. form表单的post请求,使用隐藏域<input type="hidden" name="token" value="${token}">;

<2>. 直接使用超级链接<html:link action="" trasantion="true">,可以直接在链接后面添加token值。

以横条广告为例的广告插入实现,插屏广告同理,积分墙广告待续。

工具/原料

SDK

方法/步骤

注册下载SDK

创建项目,创建完成项目后、将会得到应用ID、应用密钥这两个字符串:

将下载下来的库添加到本地项目中,选择选项:

其次添加依赖框架、这步很重要,

所要添加的依赖框架框架:

AdSupport.framework

Security.framework

StoreKit.framework

ImageIO.framework

MapKit.framework

QuartzCore.framework

SystemConfiguration.framework

CoreTelephony.framework

CoreGraphics.framework

添加完成、编译....

最后代码实现...显示横幅广告

这里需要做3件事:

1)首先要到AppController.mm

中初始化代理

2)调用initQuMiGuangGao初始化方法

3)显示广告横幅

<1>

将所要现实的那个.cpp文件改成.mm文件

<2>

在.mm文件中把头文件包含进来