js清除所有网站token

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

本地存储对比:

sessionStorage,关闭窗口就被清除;

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

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

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

//判断是否支持 比如浏览器开启了隐私模式var isCookie = () = >{ return navigatorcookieEnabled;};//存储function setCookie(cname, cvalue, exdays = 0) { cvalue = encodeURIComponent(JSONstringify(cvalue)); if (exdays > 0) { var d = new Date()getTime() + exdays 24 3600 1000 + 8 3600 1000; var expires = "expires=" + new Date(d)toUTCString(); documentcookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } else { documentcookie = cname + "=" + cvalue + ";" + ";path=/"; }}//获取function getCookie(cname) { var name = cname + "="; var ca = documentcookiesplit(";"); for (var i = 0; i < calength; i++) { var c = ca[i]; while (ccharAt(0) == " ") { c = csubstring(1); } if (cindexOf(name) == 0) { let d = csubstring(namelength, clength); return JSONparse(decodeURIComponent(d)); } } return "";}//获取 通过正则// function getCookie(name) {// var arr,// reg = new RegExp("(^| )" + name + "=([^;])(;|$)");// if ((arr = documentcookiematch(reg))) {// return JSONparse(decodeURIComponent(arr[2]));// } else {// return null;// }// }//删除function deleteCookie(name) { var date = new Date(); datesetTime(dategetTime() - 1); var delValue = getCookie(name); if (delValue) { documentcookie = name + "=" + delValue + ";expires=" + datetoGMTString(); }}

使用示例:

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

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

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

文档:

MDN Cookie(>

app中部分页面要使用微信h5页面,其中一些servise请求需要自定义token

一开始想在ouath2js里修改openid设置的,但是后来采用的其他的办法。

openidCacheset() 是存储用户信息的方法

先获取url,进行解析,看query中是否存在token

只有没有获取到用户信息且query中没有token,才进入登陆页面oauth2js

如果query中有token,就重新请求接口,获取用户信息并缓存。

优先获取query中的token,其次获取缓存中的token

const get = () => new Promise((resolve, reject) => {

// 获取token的逻辑

// 成功的话调用resolve

// 失败的话调用reject

});

// 判断token是否获取成功,如果失败的话重新获取一次,不过这里会陷入循环?

const getToken = get()then(

token => token

)catch(

err => getToken()

)

getToken()then(token => {

// 获得token要干的事情……

});

以上就是关于js清除所有网站token全部的内容,包括:js清除所有网站token、分享到QQ,微博有没有像分享到微信那样的jssdk、app使用微信h5页面,获取url中的token并使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10127992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存